Förenkla skapandet av transformationsmatris med kedjans åtgärder
TransformBuilder
som förenklar skapandet av omvandlingen matris av kedjans verksamhet.
Anta att det finns en TransformBuilder
instansTb, Och kedjans verksamhet:
Python
import aspose.threed as a3d
# Change the (x, y, z) into (x + 1, y, z)
tb = a3d.utilities.TransformBuilder(a3d.utilities.ComposeOrder.APPEND)
a = tb.translate(1, 0, 0)
# Rotate alone with the Y axis with 180 deg will change the (x, y, z) into (-x, y, -z)
.rotate_euler_degree(0, 180, 0)
# Scale by 2 will change the (x, y, z) into (2x, 2y, 2z)
.scale(2)
# change the (x, y, z) into (z, y, x)
.rearrange(a3d.Axis.Z_AXIS, a3d.Axis.Y_AXIS, a3d.Axis.X_AXIS)
.matrix
Om sammansättningsordningen för denna instans är Prepend, beräknas den slutliga matrisen från vänster till höger, Det betyder att den slutliga transformationsmatrisen kommer att utföra dessa uppgifter:
- Ändra (x, y, z) till (x 1, y, z)
- Rotera ensam med Y-axeln med 180deg kommer att ändra (x, y, z) till (-x, y, -z)
- Skala med 2 ändrar (x, y, z) till (2x, 2y, 2z)
- Ändra (x, y, z) till (z, y, x)
Men om komponera ordern är Tillägg, kommer ordern att vändas som:
- Ändra (x, y, z) till (z, y, x)
- Skala med 2 ändrar (x, y, z) till (2x, 2y, 2z)
- Rotera ensam med Y-axeln med 180deg kommer att ändra (x, y, z) till (-x, y, -z)
- Ändra (x, y, z) till (x 1, y, z)
Python
import aspose.threed as a3d
# use prepend order so the calculation is performed from left to right:
m = (a3d.utilities.TransformBuilder(a3d.utilities.ComposeOrder.PREPEND))
# Change the (x, y, z) into (x + 1, y, z)
.translate(1, 0, 0)
# Rotate alone with the Y axis with 180deg will change the (x, y, z) into (-x, y, -z)
.rotate_euler_degree(0, 180, 0)
# Scale by 2 will change the (x, y, z) into (2x, 2y, 2z)
.scale(2)
# change the (x, y, z) into (z, y, x)
.rearrange(a3d.Axis.Z_AXIS, a3d.Axis.Y_AXIS, a3d.Axis.X_AXIS)
.matrix
# Apply this matrix on a (0, 0, 0) vector, then we get the right result (0, 0, -2)
t = m * a3d.utilities.Vector3.ORIGIN;
De nya metoderna i klasserna Matrix4
och TransformBuilder
är verktyg för utvecklare att modellera scenen per program, så de behöver inte manuellt konstruera transforma matrisen, detta brukar användas av expertutvecklare.
Vanliga utvecklare kan använda Transform
egenskapen av klass Node
för att ändra översättning/skala/rotation av ett objekt.
Utvecklare kan också tilldela matrisen som skapats av TransformBuilder
till Node.Transform
.
Mer information om transformationsmatris finns på Wikipedia.TransformationsmatrisOch ochAffin överföring