2012-09-27 2 views
-2

두 점 - A와 B가 있다고 가정 해 보겠습니다. 두 점과 0,0 사이에 각도를 형성하고, 점 A가 점 A를 이동시켜 점 B가 각도를 유지하도록합니다.벡터 각도 옵셋

지금은 벡터 오프셋을 라디안으로 변환하고 필요한 각도를 추가 한 다음 올바른 위치에 B를 배치하는 데 사용하는 법선 벡터로 다시 변환합니다. 각도와 각도로의 점프를 피하면서이 과정을 최적화 할 수 있다면 궁금합니다. 사인 함수는 CPU에서 계산 비용이 많이 들기 때문에 큰 스피드 업을 제공 할 수 있습니다.

+0

어느 각도를 보존해야합니까? A와 B에 의해 만들어진 (0, 0)에서의 각도? – 0605002

+0

예, 그 중 하나 –

+0

그러면 B의 위치는 고유하지 않습니다. 원점을 O라고하면, A를 일정하게 유지하면서 광선 OB에 B를 둘 수 있습니다. A의 모든 위치에 대해 O에서 각도를 유지하는 B의 위치는 무한히 많습니다. – 0605002

답변

0

두 벡터를 모두 vec(a), vec(b)으로 정규화하십시오. 벡터 사이의 각도가 ang(p)이라고 가정하면 변환 매트릭스 A=[cosp,-sinp;sinp, cosp]을 유지합니다.이 각도는 서로 바뀌지 않으므로 다시 계산할 필요가 없습니다. 회전 된 단위 벡터 vec(a1)을 매트릭스 A으로 변환하면 단위를 얻을 수 있습니다 벡터 vec(b1)을 누른 다음 정규화를 실행 취소하여 실제 값을 얻습니다. 많은 점이 존재한다면, 모든 각도에 대한 행렬을 유지해야 할 것입니다.