에서 Vector3를 얻을 나는 매트릭스 수학은 충분히 이해 생각하지만 분명히 내가 여기XNA는 : 매트릭스
는 설정의 우둔 해요 : 나는 세계 [0,0,0]에서 개체가
공간. 마우스를 움직여 카메라 클래스를 제어하여 객체를 회전하고 확대/축소하여 항상 볼 수 있도록합니다. 여기에 내가 카메라에서 내 viewMatrix을 계산하는 방법은 다음과 같습니다
나는 상자의 거리를 얻을 수 있도록 세계 공간에서 카메라의 위치를 얻을 수 있어야합니다public Matrix viewMatrix {
get {
return
Matrix.CreateFromAxisAngle(Vector3.Up, rotAngle)
* Matrix.CreateFromAxisAngle(Vector3.Left, pitchAngle)
* Matrix.CreateTranslation(0, 0, distance)
;
}
}
- 특히의 거리를 각면에서 상자의. 세계 우주 좌표계에서 카메라의 xyz 위치를 얻으려면 어떻게해야합니까?
이 나는 시도했다 :
// all of these only return [0, 0, distance];
Vector3 pos = Vector3.Transform(Vector3.Zero, viewMatrix);
Vector3 pos = viewMatrix.Translation;
Vector3 pos = new Vector3(viewMatrix.M41, viewMatrix.M42, viewMatrix.M43);
그것은 어떻게 든 손실되고있는 회전 정보처럼 보인다. 이상한 점은 viewMatrix 코드가 카메라 배치에 완벽하게 작동한다는 것입니다.