2014-06-17 3 views
0

다른 벡터와 거리에서 벡터를 만들려면 어떻게해야합니까?거리와 벡터에서 벡터 만들기

예를 들어, vector3d(1,1,2) 및 거리 12를 사용하면 방향이 같지만 길이가 더 긴 벡터를 만들 수 있습니다.

답변

1

원하는 방향으로 unit vector을 찾고 싶습니다. XNA에서 이것은 Vector3.Normalize에 의해 주어진다. 그러면 최종 거리만큼 단위 벡터 (정의에 따라 길이 = 1)가 scalar multiply 수 있습니다.

예는 :

var originalVector = new Vector3(1, 1, 2); 
var finalLength = originalVector.Length + 12; // "longer by 12", this could be whatever you want 
originalVector.Normalize(); // make it a unit vector 
var finalVector = originalVector * finalLength; 
+0

두 벡터가 없습니다. 하나의 벡터와 하나의 거리를 가지고 있습니다. – user3741996

+0

그러면'originalVector * finalLength'의 결과를'originalVector'에 할당 할 수 있습니다. 별도의 변수로 설명하고 있지만 원하는 것은 무엇이든 할 수 있습니다. 수학은 동일합니다. – Asik

+0

글쎄요, 저를 저주 해주세요. 여기에 게임에서 모든 "움직임"을 계산하는 "복잡한"pytagore 수학을 사용 했었습니다 ... 나는 이것이 도메인에서 클래스없이 시작했을 때 일어나는 일이라고 생각합니다 ... –

0

Asik의 대답은 수학적 관점에서 100 % 정확합니다. 확대 된 벡터를 원래의 것으로 사용하려면

var originalVector = originalVector * finalLength; 
관련 문제