坐标系 变换
请问 如何在 DirectX 9 中设计一个矩阵
使得 X水平 Y垂直 Z 斜45度 就是用于显示采集数据用的 笛卡尔坐标系
给个代码好吗?
问题点数:20、回复次数:6Top
1 楼vcmute(BCare4 H1Rest Good9!)回复于 2005-12-05 21:32:55 得分 2
不熟,try D3DTop
2 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2005-12-06 09:59:09 得分 15
dx9和笛卡儿坐标系都是三个坐标轴相互垂直的
你如果是要把数据按照三维的显示,然后固定一个斜45度角是可以的
那只要控制camera/view矩阵就可以了,这在Direct Graphics或者D3D当中很容易实现
如果是在二维平面上显示,根本不用directx也可以,有简单的数学公式
x = x3 + z3* cos(45)
y = y3 + z3* sin(45)
其中x3,y3,z3是三维的坐标
x和y是平面的坐标
这个转换并不是直接对应到显示屏幕的——那需要结合你的窗口和显示模式再处理一下
这个转换只是一个3维到2维的一个投影变换Top
3 楼mjm_d(菠萝蜜多)回复于 2005-12-06 12:58:09 得分 0
Direct Graphics
无法实现 因为这个变换矩阵是扭曲的
要求:
| /
| /
|/
---------
而我市先后是
| /
| /
|/
\
\
\
不能贴图就是繁
Top
4 楼mjm_d(菠萝蜜多)回复于 2005-12-06 12:59:59 得分 0
不过还是要谢谢你
会有分的Top
5 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2005-12-06 14:46:16 得分 3
在dx当中,物体坐标系的三个轴是互相垂直的
但是通过控制相机的位置和角度,可以实现类似斜45度的方式视觉效果
例如,你可以用lookat方法构造相机矩阵:
1,1,-1点看向1,0,0点,up向量是0 1 0
那么看到的结果就类似于你的第一个图示效果
Top
6 楼mjm_d(菠萝蜜多)回复于 2005-12-07 15:54:40 得分 0
呵呵现在给分
happy__888([顾问团]寻开心) 谢谢你 也谢谢大家
应该是
1, 0, 0, 0,
0, 1, 0, 0,
sin, cos, 1, 0,
0, 0, 0, 1,Top




