游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5387|回复: 5

3维向量乘以4维矩阵怎么算?对数学比较熟悉一点的帮忙

[复制链接]

36

主题

109

帖子

109

积分

注册会员

Rank: 2

积分
109
发表于 2006-4-11 20:05:00 | 显示全部楼层 |阅读模式

点 vVertex( x , y , z ) 为CVector3类型的3维顶点向量,是一个自身物体坐标系的坐标值。现在要想得到vVertex在世界坐标系的值,必然要乘以各种变换后的世界坐标系矩阵,但这个世界坐标系的矩阵是4X4的矩阵,可是三维向量是不能和4X4的矩阵相乘,只能和3X3的矩阵相乘,请问有什么好的解决方法?

我是这样的,将三维顶点“变成”四维vVertex( x , y , z , 1 )。
本来三维向量( x , y , z ) 本质就是四维齐次坐标( x , y , z , 1 )的一种简写吗,呵呵。

然后按4维向量( x , y , z , 1 )乘以4X4矩阵的公式计算,得出的结果还是4维向量=( x , y , z , w ). 可是我需要的结构还是一个3维向量,难道这样? 结果 = ( x/w , y/w , z/w )


请问这一系列做法对吗?小弟水平有限,请高手指教。



4

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2006-4-11 20:35:00 | 显示全部楼层

Re:3维向量乘以4维矩阵怎么算?对数学比较熟悉一点的帮

你那么做是对的
不过 说实话 世界变化 不会 改变w吧 它还是1的
因为 世界变换 不过是 移动 旋转缩放 罢了
不会 改变w的
当然 如果 你的世界变换 包括 一些 挤压几何体的变换 比如 投影了 就需要/w了

0

主题

25

帖子

29

积分

注册会员

Rank: 2

积分
29
发表于 2006-4-11 21:37:00 | 显示全部楼层

Re:3维向量乘以4维矩阵怎么算?对数学比较熟悉一点的帮

创建其次坐标,将3维向量由4维向量表示。。。。
结果 = ( x/w , y/w , z/w )是对的,W 就是实现物体的缩放用的

14

主题

45

帖子

45

积分

注册会员

Rank: 2

积分
45
发表于 2006-4-12 09:23:00 | 显示全部楼层

Re:3维向量乘以4维矩阵怎么算?对数学比较熟悉一点的帮

因为 世界变换 不过是 移动 旋转缩放 罢了
不会 改变w的

--------------------

我觉的平移操作,w总是1。可如果旋转,尤其是旋转负角度的话,w的值不可能总是1吧!当然这是我个人观点。

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-4-12 09:55:00 | 显示全部楼层

Re:3维向量乘以4维矩阵怎么算?对数学比较熟悉一点的帮

2楼正解,3、4属于胡说。

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2006-4-12 15:06:00 | 显示全部楼层

Re:3维向量乘以4维矩阵怎么算?对数学比较熟悉一点的帮

基本同意楼上观点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 04:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表