三维图形平移时,矩阵相乘时用的数学原理?

mirroatl51 2013-10-18 11:41:19

//原三维图形矩阵坐标点
P3D[0][0]=0;P3D[0][1]=0;P3D[0][2]=0;P3D[0][3]=1;//A点(0,0,0)
P3D[1][0]=0;P3D[1][1]=90;P3D[1][2]=0;P3D[1][3]=1;//B点(0,90,0)
P3D[2][0]=0;P3D[2][1]=90;P3D[2][2]=90;P3D[2][3]=1;//C点(0,90,90)
P3D[3][0]=0;P3D[3][1]=0;P3D[3][2]=90;P3D[3][3]=1;//D点(0,0,90)
P3D[4][0]=90;P3D[4][1]=0;P3D[4][2]=0;P3D[4][3]=1;//E点(90,0,0)
P3D[5][0]=90;P3D[5][1]=90;P3D[5][2]=0;P3D[5][3]=1;//F点(90,90,0)
P3D[6][0]=90;P3D[6][1]=90;P3D[6][2]=90;P3D[6][3]=1;//G点(90,90,90)
P3D[7][0]=90;P3D[7][1]=0;P3D[7][2]=90;P3D[7][3]=1;//H点(90,0,90)
//三维图形移动 所用的矩阵坐标点
TM[0][0]=1;
TM[1][1]=1;
TM[2][2]=1;
TM[3][0]=0;
TM[3][1]=-10;
TM[3][2]=0;
TM[3][3]=1;



for(int i=0;i<8;i++)//3维图形平移,得两个矩阵相乘
for(int j=0;j<4;j++)
P3D_Other[i][j]=P3D[i][0]*TM[0][j]+//不明白这相乘是用的什么原理?
P3D[i][1]*TM[1][j]+
P3D[i][2]*TM[2][j]+
P3D[i][3]*TM[3][j];
//然后将P3D_Other 坐标三维转二维坐标绘制到窗口上。代码不传了。
...全文
395 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
victor_woo 2013-11-01
  • 打赏
  • 举报
回复
引用 5 楼 mirroatl255 的回复:
哥哥,我帖子题目就是问数学原理 我看了不懂呦 [quote=引用 4 楼 victor_woo 的回复:] [quote=引用 3 楼 mirroatl187 的回复:] 不干嘛 学习而已。 for(int i=0;i<8;i++)//3维图形平移,得两个矩阵相乘 for(int j=0;j<4;j++) P3D_Other[i][j]=P3D[i][0]*TM[0][j]+//不明白这相乘是用的什么原理? P3D[i][1]*TM[1][j]+ P3D[i][2]*TM[2][j]+ P3D[i][3]*TM[3][j]; [quote=引用 1 楼 victor_woo 的回复:] 你发的帖子看到很多,不知道你到底在用3D做什么? 总是一些2D,3D,矩阵,计算什么的,你是不是跑偏了啊?
[/quote] 两个4X4矩阵相乘 不要只看代码,线性代数,矩阵论,计算机图形学的书也要翻一翻[/quote][/quote] 矩阵相乘都看不懂的话,你还是不要弄3D了
suseyaoyao 2013-11-01
  • 打赏
  • 举报
回复
P3D是8x4的矩阵,TM是4x4的矩阵,这两个矩阵相乘得到一个8x4的矩阵P3D_Other,矩阵乘法在线性代数第二章有详细介绍。楼主可以参考下。 楼主还在学校还是值得鼓励的哈。想当年我在学校的时候除了真三就是dota,艾希,不过还是要多独立思考哦
mirroatl255 2013-10-31
  • 打赏
  • 举报
回复
哥哥,我帖子题目就是问数学原理 我看了不懂呦
引用 4 楼 victor_woo 的回复:
[quote=引用 3 楼 mirroatl187 的回复:] 不干嘛 学习而已。 for(int i=0;i<8;i++)//3维图形平移,得两个矩阵相乘 for(int j=0;j<4;j++) P3D_Other[i][j]=P3D[i][0]*TM[0][j]+//不明白这相乘是用的什么原理? P3D[i][1]*TM[1][j]+ P3D[i][2]*TM[2][j]+ P3D[i][3]*TM[3][j]; [quote=引用 1 楼 victor_woo 的回复:] 你发的帖子看到很多,不知道你到底在用3D做什么? 总是一些2D,3D,矩阵,计算什么的,你是不是跑偏了啊?
[/quote] 两个4X4矩阵相乘 不要只看代码,线性代数,矩阵论,计算机图形学的书也要翻一翻[/quote]
victor_woo 2013-10-24
  • 打赏
  • 举报
回复
引用 3 楼 mirroatl187 的回复:
不干嘛 学习而已。 for(int i=0;i<8;i++)//3维图形平移,得两个矩阵相乘 for(int j=0;j<4;j++) P3D_Other[i][j]=P3D[i][0]*TM[0][j]+//不明白这相乘是用的什么原理? P3D[i][1]*TM[1][j]+ P3D[i][2]*TM[2][j]+ P3D[i][3]*TM[3][j]; [quote=引用 1 楼 victor_woo 的回复:] 你发的帖子看到很多,不知道你到底在用3D做什么? 总是一些2D,3D,矩阵,计算什么的,你是不是跑偏了啊?
[/quote] 两个4X4矩阵相乘 不要只看代码,线性代数,矩阵论,计算机图形学的书也要翻一翻
mirroatl187 2013-10-23
  • 打赏
  • 举报
回复
不干嘛 学习而已。 for(int i=0;i<8;i++)//3维图形平移,得两个矩阵相乘 for(int j=0;j<4;j++) P3D_Other[i][j]=P3D[i][0]*TM[0][j]+//不明白这相乘是用的什么原理? P3D[i][1]*TM[1][j]+ P3D[i][2]*TM[2][j]+ P3D[i][3]*TM[3][j];
引用 1 楼 victor_woo 的回复:
你发的帖子看到很多,不知道你到底在用3D做什么? 总是一些2D,3D,矩阵,计算什么的,你是不是跑偏了啊?
真相重于对错 2013-10-21
  • 打赏
  • 举报
回复
这应该是高中解析几何的变形而已
victor_woo 2013-10-20
  • 打赏
  • 举报
回复
你发的帖子看到很多,不知道你到底在用3D做什么? 总是一些2D,3D,矩阵,计算什么的,你是不是跑偏了啊?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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