# Transformation from local to global and global to local with some additional issue?

This topic is 2865 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

1. Here the issue is to compute the global P(X,Y,Z) position w.r.t local L(x,y,z)
(origin of the local space of the cylinder).

=> means transform P(X,Y,Z) to P(x,y,z).

point "P" is located somewhere inside of the cylinder.

I did but I am not sure, there is something wrong.

Method 1:

| local P'x | | LI L4 L7 | | Px - Lx |
| local P'y |= | L2 L5 L8 | * | Py - Ly |
| local P'z | | L3 L6 L9 | | Pz - Lz |

Method 2:

first computed the transformation matrix of cylinder:
| L'x | | LI L4 L7 | |Lx|
| L'y | = | L2 L5 L8 | * |Ly|
| L'z | | L3 L6 L9 | |Lz|

then

| local P'x | | Px - L'x |
| local P'y | = | Py - L'y |
| local P'z | | Pz - L'z |

after that I want to again transform from local(L) to global(G).
=> means transform P(x,y,z) to P(X,Y,Z)
------------------------------------------------------------

actually i want to change the position of point "P" inside of the cylinder. for this purpose i have to first transform "P" to local space (L) of the cylinder then I change the position of "P". finally again back to transform point "P" into global space (G). this is my issue.

thanks.

[Edited by - luckyyyyyy on December 14, 2010 7:39:40 PM]

##### Share on other sites
In the following I'm using column vectors:

A point p given in the local space L is transformed into the parental (here global) space by
p' := L * p
where L is the homogeneous transformation matrix, e.g. assembled from a rotation and translation like
L := T * R
where the translation matrix is given by the origin of L.

You seem to want to deal with affine co-ordinates, so going on to the equivalent affine transformation means
p' := t + R * p

Converting from global to local obviously means to use the inverse of the above transformation:
p' - t = R * p
R-1 * ( p' - t ) = R-1 * R * p
so that at the end
R-1 * ( p' - t ) = p

Your Method 1 is the same in case that your L1..L9 matrix is in fact the inverse rotation matrix of L.

Due to
R-1 * ( p' - t ) = R-1 * p' - R-1 * t
and matching the terms against your Method 2, it seems that your L' is
L' = R-1 * t
and hence the right term above, but the left term cannot be found. So your Method 2 is wrong.

##### Share on other sites

thanks for your kind guidance. and sorry for late reply. actually i was trying to solve it out.
now you can see the problems in figures ?
The cylinder is covered with a bounding box. now how can i rotate that bounding box too with cylinder ?

first correct me, am i applying the correct equations?

I draw that bounding box:
bounding_box_X = L_x +(-) r
bounding_box_Y = L_y +(-) r
bounding_box_Z = L_z + Height_cylinder

##### Share on other sites
actually I can easy use AABB (Axis-aligned bound box) but i want to use here OBB(oriented bounding box) for collision detection.

guide me for OBB.
Thanks

1. 1
Rutin
27
2. 2
3. 3
4. 4
5. 5

• 11
• 11
• 10
• 13
• 20
• ### Forum Statistics

• Total Topics
632948
• Total Posts
3009399
• ### Who's Online (See full list)

There are no registered users currently online

×