Let (p, q) represent cartesian coordinates and (* r, s *) represent the oblique ones.
I am assuming that (0, 0) and (* 0, 0 *) represent the same point, that is, both coordinate systems share the same origin.
Suppose the (* 1, 0 *) point in the oblique coordinate system is the same point as the (a, c) point in the Cartesian coordinate system.
Likewise suppose the (* 0, 1 *) point in the oblique coordinate system is the same point as the (b, d) point in the Cartesian coordinate system.
Then the (* t, u *) point in the oblique coordinate system will be the same point as the ( at + bu, ct + du ) point in the Cartesian coordinate system.
So that goes from oblique (* ... *) to Cartesian ( ... ).
To go the other way, suppose you have the Cartesian (x, y) for a point. What would the oblique coordinates (* t, u *) of that point be? Well from the above we know that
x = at + bu
y = ct + du
It was easy to compute x and y if we knew t and u, but how about the reverse?. Well, multiple the top one by c and the bottom one by a to get
cx = ac t + bc u
ay = ac t + ad u
Subtracting, cx - ay = (bc - ad) u
Likewise multiply the top one by d and the bottom one by b to get
dx = ad t + bd u
by = bc t + bd u
and subtract to get
dx - by = (ad - bc) t
Putting the unknowns t and u on the left,
(ad - bc) t = dx - by
(bc - ad) u = cx - ay = (bc - ad) u or (ad - bc) u = (- c)x + ay
So, as long as ad - bc is not zero, you can find (* t, u *) to be
(* (dx - by) / (ad - bc), (-cx + ay) / (ad - bc) *)
2006-07-05 14:11:43
·
answer #1
·
answered by ymail493 5
·
2⤊
1⤋
rotating by angle α
x = x cos α - y sin α
y = x sin α + y cos α
2006-07-05 07:52:44
·
answer #2
·
answered by bequalming 5
·
0⤊
0⤋