TransformBrush(id, sx, rx, ry, sy[, smooth])
TransformBrush()
durchführen, wird alles in
einem einzigen Durchlauf durchgeführt.
Die 2x2-Transformationsmatrix besteht aus vier Fließkommazahlenfaktoren:
sx:
rx:
sx
und sy
kann dies auch 0 sein.
ry:
rx
auch 0 sein.
sy:
sx
nicht Null sein. Wenn er negativ ist, wird das Bild zusätzlich
auf der x-Achse gekippt.
Die Identitätsmatrix ist definiert als
( 1 0 ) ( 0 1 ) |
Wenn Sie diese Matrix übergeben, dann wird keine Transformation
durchgeführt werden, da keine Rotation und keine Skalierung
festgelegt wurde. Wenn Hollywood diese Matrix auf jeden Pixel
in Ihrem Pinsel anwenden würde, wäre das Ergebnis nur eine Kopie
des Pinsels. Wenn aber TransformBrush()
eine Einheitsmatrix
erkennt, wird dieser Befehl nichts tun.
Optional können Sie das Argument smooth
auf True
setzen,
um Antialiasing beim Transformieren zu benutzen, welches zu
einem glatteren Aussehen führt, aber dessen Berechnung länger
dauert.
Bitte beachten Sie: Sie sollten beim Transformieren immer eine Kopie des Originalpinsel benutzen. Zum Beispiel, wenn Sie Pinsel 1 auf 12x8 skalieren und später wieder auf 640x480 transformieren, erhalten Sie ein völlig unbrauchbares Bild. Deshalb sollten Sie immer vom Originalpinsel eine Kopie erstellen und erst dann transformieren.
Beachten Sie, dass TransformBrush()
bei Vektorpinseln immer
mit dem nicht transformierten Pinsel angewendet wird. Das bedeutet,
dass alle vorherigen Transformationen, die mit TransformBrush()
,
ScaleBrush() oder RotateBrush()
auf den Pinsel angewendet wurden, beim Aufruf von TransformBrush()
rückgängig gemacht werden.
Weitere Pinseleffekte: ArcDistortBrush(), BarrelDistortBrush(), BlurBrush(), BrushToGray(), BrushToMonochrome(), CharcoalBrush(), ContrastBrush(), EdgeBrush(), EmbossBrush(), FlipBrush() Befehl, GammaBrush(), InvertBrush() Befehl, MixBrush(), ModulateBrush(), OilPaintBrush(), PerspectiveDistortBrush(), PixelateBrush(), PolarDistortBrush(), RotateBrush(), SepiaToneBrush(), ScaleBrush(), SharpenBrush(), SolarizeBrush(), SwirlBrush(), TintBrush() und WaterRippleBrush().
True
wird Antialiasing bei der affine
Transformation verwendet (Standard ist False
)angle = Rad(45) ; konvertiert Grad in Radiant TransformBrush(1, Cos(angle), Sin(angle), -Sin(angle), Cos(angle))Der obige Code dreht den Pinsel 1 um 45 Grad.