내 응용 프로그램에서는 마우스 위치에 따라 중심을 중심으로 회전 지점을 허용합니다. 나는 기본적으로이 같은 다른 점을 중심으로 점을 회전 해요 :이 호에 대한 도움
void CGlEngineFunctions::RotateAroundPointRad(const POINTFLOAT ¢er, const POINTFLOAT &in, POINTFLOAT &out, float angle)
{
//x' = cos(theta)*x - sin(theta)*y
//y' = sin(theta)*x + cos(theta)*y
POINTFLOAT subtr;
subtr.x = in.x - center.x;
subtr.y = in.y - center.y;
out.x = cos(angle)*subtr.x - sin(angle)*subtr.y;
out.y = sin(angle)*subtr.x + cos(angle)*subtr.y;
out.x += center.x;
out.y += center.y;
}
을 POINTFLOAT이 문제는 포인트가 MouseMove 이벤트에 업데이트 할 필요가있다 단순히
struct POINTFLOAT {
float x;
float y;
}
입니다. 다음 작업을 수행하지 않고이 작업을 수행 할 방법을 찾고 있습니다.
난간이 더러워 져서 여분의 메모리를 사용하고 있다고 느낍니다. 이전의 회전 각도와 현재의 각도를 알고있는 방법이 있나요? 저는 원래의 포인트에 항상 변형을 적용하는 것을 피할 수 있습니다. 그리고 수정중인 포인트를 기반으로 구축 할 수 있습니까? 마우스까지 그렇게 대신 이전 지점을 저장하는, 문제를
감사합니다 그래서
매번 내가 C와 C++로 태그 된 질문을 볼 때 내 머리가 폭발하려고한다. – James
(http://php.net/manual/en/function.explode.php) [c, C++ and php] (http://stackoverflow.com/questions/tagged/c%20c%2b%2b%20php) 태그가 붙어 있습니까? : p – kennytm
또한 수학 기반 질문 인 것처럼 보입니다. 즉, math.stackexchange에서 더 나은 답변을 찾을 수 있습니다. – James