我试图通过使用相机创建一个等角(35度)视图。XNA设置等距相机视图或世界?
我画绕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项目。
什么是“出于某种原因,被切断的旋转给这个结果的某一个点”是什么意思?我认为你遗漏了一个字。 – 2012-08-13 00:07:41
感谢,我忘了“三角” – 2012-08-13 01:13:43