TransformTextObject(id, sx, rx, ry, sy[, smooth])
TransformTextObject()
durchführen, wird alles in einem einzigen
Durchlauf erledigt.
Die 2x2-Transformationsmatrix besteht aus vier Fließkommafaktoren:
sx:
rx:
ry:
sy:
Die Identitätsmatrix ist definiert als
( 1 0 ) ( 0 1 ) |
Wenn Sie diese Matrix übergeben, wird keine Transformation angewendet, da
keine Rotation und keine Skalierung definiert sind. D.h. wenn Hollywood diese
Matrix auf jedes Pixel in Ihrem Textobjekt anwenden würde, wäre das Ergebnis
nur eine Kopie des Textobjekts. Aber wenn TransformTextObject()
feststellt,
dass Sie eine Identitätsmatrix übergeben haben, wird es natürlich sofort
zurückkehren und nichts tun.
Das optionale Argument smooth
kann auf True
gesetzt werden, wenn Hollywood
bei der Transformation interpolieren soll. Dies führt zu Ergebnissen, die
besser aussehen, aber die Interpolation ist ziemlich langsam.
Bitte beachten Sie: Sie sollten Transformationsoperationen immer mit dem ursprünglichen Textobjekt durchführen. Wenn Sie beispielsweise Textobjekt 1 in 12 x 8 Pixel skalieren und es dann wieder in 640 x 480 umwandeln, erhalten Sie ein durcheinandergebrachtes Textobjekt. Daher sollten Sie immer das ursprüngliche Textobjekt behalten und nur Kopien davon transformieren.
Beachten Sie, dass TransformTextObject()
bei Vektortextobjekten immer auf dem
nicht transformierten Textobjekt operiert. Das bedeutet, dass alle vorherigen
Transformationen, die mit TransformTextObject()
, ScaleTextObject()
oder RotateTextObject() auf das Textobjekt angewendet
wurden, rückgängig gemacht werden, wenn TransformTextObject()
aufgerufen wird.
angle = Rad(45) ; convert degrees to radians TransformTextObject(1, Cos(angle), Sin(angle), -Sin(angle), Cos(angle))Der obige Code dreht das Textobjekt Nummer 1 um 45 Grad unter Verwendung einer 2x2-Transformationsmatrix.