图形学没有学到家的困惑~请教各位关于VECTOR的一段代码

renxu350 2011-04-14 08:35:45
请先看图片:

再请看代码:

//迪卡尔左手系坐标系
D3DXVECTOR3 vM(-25, 0, 25);//图中点M
D3DXVECTOR3 vP(-15, 0, 35);//图中点P

D3DXVECTOR3 vMP = vP - vM;
D3DXVec3Normalize(&vMP, &vMP);

D3DXVECTOR3 vDirectionM(0, 0, -100);
D3DXVec3Normalize(&vDirectionM, &vDirectionM);

//以M为中心,计算M的Z轴负方向的VECTOR和vMP的夹角
float fCosineTheta = D3DXVec3Dot(&vDirectionM, &vMP);
float AngleRotationY = acos(fCosineTheta);

我的问题是对于这个图和这段代码而言,
vDirectionM(0, 0, -100)的起点并不与点M重合,
也就是vDirectionM与图中不一样,
也就是2个VECTOR的起点不一样,怎么能用代码这样的方法求出夹角呢?
为什么起点不一样的向量却能求出夹角?
谁能解释的清除?
感觉很困惑.....
...全文
129 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Baesky 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 renxu350 的回复:]
请先看图片:

再请看代码:
C/C++ code

//迪卡尔左手系坐标系
D3DXVECTOR3 vM(-25, 0, 25);//图中点M
D3DXVECTOR3 vP(-15, 0, 35);//图中点P

D3DXVECTOR3 vMP = vP - vM;
D3DXVec3Normalize(&vMP, &vMP);

D3DXVECTOR3 vDirectio……
[/Quote]
因为向量是没有位置,只有方向和"长度"的.
HollyCpp 2011-04-14
  • 打赏
  • 举报
回复
vMP = vP - vM;
vMP等于啥,应该是(10,0,10)吧,你把(10,0,10)画到图上看看和(0,0,-100)什么关系
(10,10)和(0,-100)

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧