Tôi có véc tơ euclide a
ngồi ở tọa độ (0, 1)
. Tôi muốn xoay a
90 độ (chiều kim đồng hồ) quanh nguồn gốc: (0, 0)
.Xoay vector Euclide 2D
Nếu tôi có một sự hiểu biết đúng về cách thức hoạt động này, tọa độ kết quả (x, y) sau khi xoay phải là (1, 0)
. Nếu tôi đã xoay nó 45 độ (vẫn theo chiều kim đồng hồ) thay vào đó, tôi đã mong đợi các tọa độ kết quả là (0.707, 0.707)
.
theta = deg2rad(angle);
cs = cos(theta);
sn = sin(theta);
x = x * cs - y * sn;
y = x * sn + y * cs;
Sử dụng đoạn mã trên, với một giá trị angle
của 90,0 độ, tọa độ quả là: (-1, 1)
. Và tôi rất bối rối. Các ví dụ được thấy trong các liên kết sau đại diện cho cùng một công thức được hiển thị ở trên chắc chắn?
Tôi đã làm gì sai? Hoặc tôi đã hiểu sai cách một vectơ được xoay?
Các loại của tất cả các biến là gì? –
tăng gấp đôi, nhưng câu trả lời là đủ đơn giản, nhờ Caspar. – dcousens
Ngoài ra - không phải là ngược chiều kim đồng hồ này? –