![]() ![]() |
|
在DirectX中将屏幕坐标转成空间坐标 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 13:56:59 文章录入:杜斌 责任编辑:杜斌 | |
|
|
123456789101112131415 Point p = Cursor.Position; Vector3 v1 = new Vector3(p.X, p.Y, 0f); this.GraphicDevice.Transform.View, this.GraphicDevice.Transform.World); Vector3 v2 = new Vector3(p.X, p.Y, 1f); this.GraphicDevice.Transform.View, this.GraphicDevice.Transform.World); float fParam = (v1.Y - 0f) / (v1.Y - v2.Y); Vector3 v3 = new Vector3(); 先算出Z=0,Z=1两种情况的空间点,也就是剪切的最近和最远距离,然后根据Y=f3DY(我这里直接将f3DY设置成0了,参见第10行代码)来进行一次剪切,按比例得到X,Z。 V3便是计算之后的坐标 |
|
![]() ![]() |