EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

EaBIM

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 4339|回复: 50
打印 上一主题 下一主题

[计算机图形学] 矢量运算简介

[复制链接]

1514

主题

7465

帖子

1万

积分

admin

Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10

积分
12408

社区QQ达人

跳转到指定楼层
楼主
发表于 2014-1-9 14:29:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果不好好学,那么下回我介绍一个3D Engine的时候你就麻烦大了.

质量保证:
只讨论可以任意平移自由矢量
以下原理适于你个人开发的3D系统,D3D系统,OpenGL系统

一.两点距离
2D系统:
Point1(x1,y1),Point2(x2,y2)
距离D=sqr( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) )
3D系统:
Point 1 (x1, y1, z1) Point 2 at (x2, y2, z2).

xd = x2-x1
yd = y2-y1
zd = z2-z1
距离Distance = SquareRoot(xd*xd + yd*yd + zd*zd)

做游戏和demo永远不要去做开方:
1.用LUT查表技术(Look up Table )
2.在做碰撞检测时,误差Distance*Distance<a certain number就可以认为点相撞了

二规格化,单位化(Normalize)
先要说矢量的长度:
矢量Vector(x,y,z)
矢量长度Length(Vector)= |Vector|=sqr(x*x+y*y+z*z)
Normalize后:
(x/Length(Vector),y/Length(Vector),z/Length(Vector))
方向不变,长度为1个单位


三.点乘 点积 数量积(Dot Product)
是一回事儿.首先明确两个矢量的点积是个标量.
中学物理的力做功就是矢量点积的例子:W=|F|.|S|.cos(theta)

二矢量点积:
Vector1undefinedx1,y1,z1) Vector2(x2,y2,z2)
DotProduct=x1*x2+y1*y2+z1*z2

很重要的应用:
1.求二矢量余弦:
由我们最熟悉的力做功:
cos(theta)=F.S/(|F|.|S|)
可以判断二矢量的方向情况: cos=1同向,cos=-1相反,cos=0直角
曲面消隐(Cull face)时判断物体表面是否可见undefined法线和视线矢量的方向问题)cos>0不可见,cos<0可见
OpenGL就是这么做的。

2.Lambert定理求光照强度也用点积:
Light=K.I.cos(theta)
K,I为常数,theta是平面法线与入射光线夹角
老王头的Fast Bump(Add Hyper Link here)也就是依据这个数学模型.但是他用了个很Cheap的Hack来模拟cosine

四.叉乘(Cross product)
叉乘:Vector1(x1,y1,z1),Vector2(x2,y2,z2):
其结果是个矢量.
方向是Vector1,Vector2构成的平面法线.再使用右手定则
长度是Length(Vector1)*Length(Vector2)*sin(theta)
theta是Vector1 & Vector2的夹角.
所以,平行的矢量叉乘结果为0矢量(长为0,方向任意)
计算结果矢量undefinedox,oy,oz)
ox = (y1 * z2) - (y2 * z1)
oy = (z1 * x2) - (z2 * x1)
oz = (x1 * y2) - (x2 * y1)
用途:计算法向量,这是生成3D图形的很关键一步。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
工作时间:工作日的9:00-12:00/13:30-18:00,节假日不在线,请勿留言

14

主题

2892

帖子

2085

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
2085
推荐
发表于 2016-4-6 11:08:14 | 只看该作者
♪(^∀^●)ノ  不错噢!~
推荐
发表于 2017-5-31 10:20:01 | 只看该作者
多多学习还是很有用的,
推荐
发表于 2016-1-21 09:18:53 | 只看该作者

很不错,支持一下。

8

主题

836

帖子

1364

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1364
5F
发表于 2014-2-27 14:55:28 | 只看该作者
顶......
楼下跟上.....

3

主题

140

帖子

529

积分

BIM专业负责人

Rank: 4Rank: 4Rank: 4Rank: 4

积分
529

社区QQ达人

7F
发表于 2014-3-11 10:45:06 | 只看该作者

路过!!!
不发表意见……

14

主题

2892

帖子

2085

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
2085
8F
发表于 2014-3-26 16:09:38 | 只看该作者
顶......
楼下跟上.....

2

主题

885

帖子

1615

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1615
10F
发表于 2014-3-26 16:15:05 | 只看该作者
(*^__^*) 嘻嘻……

4

主题

851

帖子

1307

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1307
11F
发表于 2014-3-26 16:15:35 | 只看该作者
路过!!!
不发表意见……

12

主题

861

帖子

1353

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1353
14F
发表于 2014-4-11 11:26:49 | 只看该作者
路过!!!
不发表意见……

4

主题

864

帖子

1390

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1390
16F
发表于 2014-5-14 14:28:36 | 只看该作者
(*^__^*) 嘻嘻……
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|EaBIM网 ( 苏ICP备2020058923号-1  苏公网安备32011502011255号

GMT+8, 2024-11-30 15:32

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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