カメラを使用して等角 (35 度) ビューを作成しようとしています。
Z軸を中心に回転する三角形を描いています。
何らかの理由で、三角形が回転の特定のポイントでカットされており、この結果が得られています
このサイトを使用して、角度と z 距離からカメラの位置を計算します: http://www.easycalculation.com/trigonometry/triangle-angles.php
これは私がカメラを定義する方法です:
// isometric angle is 35.2º => for -14.1759f Y = 10 Z
Vector3 camPos = new Vector3(0, -14.1759f, 10f);
Vector3 lookAt = new Vector3(0, 0, 0);
viewMat = Matrix.CreateLookAt(camPos, lookAt, Vector3.Up);
//projectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, Game.GraphicsDevice.Viewport.AspectRatio, 1, 100);
float width = GameInterface.vpMissionWindow.Width;
float height = GameInterface.vpMissionWindow.Height;
projMat = Matrix.CreateOrthographic(width, height, 1, 1000);
worldMat = Matrix.Identity;
これは、ワールド マトリックスの回転を再計算する方法です。
worldMat = Matrix.CreateRotationZ(3* visionAngle);
// keep triangle arround this Center point
worldMat *= Matrix.CreateTranslation(center);
effect.Parameters["xWorld"].SetValue(worldMat);
// updating rotation angle
visionAngle += 0.005f;
私が間違っているかもしれないことは何ですか?3D プロジェクトに取り組むのはこれが初めてです。