Hi,
have you looked at
this article on FMEPedia?
You can also download the sample workspaces used in the article.
David
3D rotation matrix:
Y-axis:
cos ?,0,sin?
0,1,0
-sin ?,0,cos ?
? = your rotation
every forth parameter (D,H andL) in the affiner is a "move" If u just rotate use 0 for every forth.
If u only want to move an object and not scale and/or rotate it:
1,0,0,@MoveX
0,1,0,@KMoveY
0,0,1,@MoveZ
U can also use some math here.
rotate and move:
cos ?,0,sin? 1,0,0,@MoveX
0,1,0 + 0,1,0,@KMoveY = new transformmatrix
-sin ?,0,cos ? 0,0,1,@MoveZ
etc.etc.
u can look up x and y-axis rotations on Wiki (keyword: rotationmatrix) or any mathsite.
haves funs!
Thank you for your replies. I have trawled wiki and FMEpedia at the 2.5D buildings example for a solution. Really I needed an application of the transformers which i could backwards engineer to my application.
This morning an ACE Safe employee, we shall call him 'Evan Angelist', helped me troubleshoot my workspace and we just wound up using a 3D rotation and then 2D rotation to accomplish what i was after.
so to apply the Dip angle to each feature about their centres used a 3DRotator.
Angle in degrees @Value(Dip)
rotate along : Custom axis
origin XYZ: pt_X, pt_Y, pt_Z
direction XYZ: pt_X, pt_Y, pt_Z
then a 2D rotator of dip_direction:
RotationAngle: )
X_origin: pt_X
Y Origin: pt_Y
(my values are cartesian 0=North and rotators are left turns in FME)
the separate steps made it easier to debug and acheived what i needed. But I will now go try your method Gio. because the 3dAffiner has higher score because of 'degree of difficulty' i reckon.
Cheers Gio and Dave,
Steve
Hey Steve,
In the first approach you took, which transformers did you use for the 3D and 2D rotations? I couldn't find anything under the name 3D/2DRotator and I am also having trouble with the 3DAffiner. I tried to rotate buildings in place (leaving the D, H, and L parameters blank), but still had a massive shift in my dataset.
Thanks for any input!
Jon