CityMaker 8二次开发之基础数学知识-向量1

前言:勿在浮沙筑高台

正文:

结合CityMaker随便写写二次开发中的数学基础知识-向量,向量用于对于在二维、三维场景中计算点、位置、角度等都有作用,这里提醒一下,要注意体会向量运算的几何意义。

1)向量表达了方向和大小。在开发中,我们直观的认为是数组,每个分量表达在某个方向上的位移序列,比如:[1,2,3]表达x轴移动1个单位,再次向y轴移动2个单位,再向z轴移动3个单位得到的向量。

2)任意一个点,可以认为是从原点到该点的向量来表达。

3)向量没有位置哦。

在citymaker api中,有:IVector3接口(Vector类)来实现。


向量的运算:

1)向量相加(减)

a)数学定义:

向量a与b相加(维度当然应该相同才行啊!):

对应的分量相加,形成新的向量,


b)几何意义:

向量a和b相加相当于平移向量,使向a的头连接向量b的尾,接着从a的尾向b的头画一个向量。



向量a和b相减也相当于平移向量,使向a的头连接向量b的尾,接着从a的头向b的尾画一个向量。(a+(-b),b的负向量)



在citymaker api中,有:IVector3.Add()方法来实现。

注意:减如何算?哈哈,先Vector.MultiplyByScalar(-1),然后,再IVector3.Add()。

注意几何意义哦。

2)向量与标量相乘

数学定义:将标量与向量各分量相乘。


几何意义:向量缩放,朝某个方向上缩放几倍。


在citymaker api中,有:IVector3.MultiplyByScalar()方法来实现。

如何逆向(求一个向量的负向量),哈哈?

3)标准化向量

数学定义:单位向量(大小为1的向量),也就是我们建模当中的法线,可以代表一个面的方向哦,开发中灵活应用。

在citymaker api中,有:IVector3.Normalize () 方法来实现。

4)点乘(DotProduct,内积)

用于计算两个向量之间的夹角哦,如果夹角为0,说明他们方向相同,大小。。。就具体看了。

如果为90度呢?如果为180度呢?

citymaker api中,有:IVector3.DotProduct(IVector3  R) 来实现。

5)向量叉乘(CrossProduct,叉积)

用于计算垂直于两个向量的向量,以及两个向量的模构成的平行四边形的面积。

citymaker api中,有:IVector3 IVector3.CrossProduct(IVector3  R) 来实现。


向量的知识容易忘记。在三维开发要做的深入一点,是很有必要认真学习的。

先写到这,还有很多需要补充的细节内容,后面再写吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值