2014-11-10 2 views
3

저는 3D 좌표 (벡터 1은 어떤 방향이든 상관 없습니다)를 알고있는 벡터 1을 가지고 있으며이 벡터 1에 수직 인 두 벡터를 찾고 싶습니다 서로도).다른 벡터에서 두 개의 수직 벡터 찾기

가능하면 두 벡터를 프로그래밍 방식으로 찾는 가장 빠른 방법은 무엇입니까?

vector1을 90도 회전하려고 시도했지만 vector1의 방향에 따라 항상 작동하지 않는 것 같습니다.

편집 : 수직 벡터는 어떤 방향이라도 될 수 있습니다.

+1

공간이 3 차원입니까? – kraskevich

+0

예 3D로되어 있습니다. – moumoute6919

+0

이 문제에 대해 좀 더 자세한 내용이 필요합니다. 어떤 두 벡터가 할 것인가? (vector1과 수직 방향에 수직 인 한). vector1을 어떻게 회전 시키려고합니까? – biziclop

답변

5

첫 번째 벡터를 찾으려면 다음 알고리즘을 적용하면됩니다.
원래 벡터가 (A, B, C)이라고 가정합시다. 두 벡터는 스칼라 곱이 0 일 때 수직입니다. 따라서 방정식은 A * x + B * y + C * z = 0입니다. A, B 또는 C 중 하나 이상이 0이 아닙니다. C이 0이 아니라고 가정합시다. 그런 다음 벡터 (1, 1, -(A + B)/C)가 적합합니다. C = 0이지만 A != 0 또는 B != 0 인 경우도 비슷한 방법으로 처리 할 수 ​​있습니다.

두 번째 벡터를 찾는 것이 훨씬 쉽습니다. 원래 벡터와 첫 번째 벡터의 벡터 곱을 사용할 수 있습니다. 그게 전부 야.

관련 문제