Một trong các cách tiếp cận dưới đây có sử dụng toán học đúng để xoay một điểm không? Nếu vậy, cái nào là đúng?Lượng giác thích hợp để quay một điểm xung quanh nguồn gốc
POINT rotate_point(float cx,float cy,float angle,POINT p)
{
float s = sin(angle);
float c = cos(angle);
// translate point back to origin:
p.x -= cx;
p.y -= cy;
// Which One Is Correct:
// This?
float xnew = p.x * c - p.y * s;
float ynew = p.x * s + p.y * c;
// Or This?
float xnew = p.x * c + p.y * s;
float ynew = -p.x * s + p.y * c;
// translate point back:
p.x = xnew + cx;
p.y = ynew + cy;
}
I don' t khá hiểu. Cx và cy là gì? Ngoài ra, bạn đã khai báo chức năng của bạn loại POINT, nhưng nó không trả lại một ĐIỂM, hoặc thực sự bất cứ điều gì. –
@Brian Hooper: +1 để chỉ ra lợi ích của các tên biến có ý nghĩa;) – Cogwheel