maya

向量在DCC软件里的应用(一)

2020-07-11  本文已影响0人  CGPipeline

向量的基础知识以及在DCC软件里的应用(一)

一.向量的基础概念

向量: 一般认为,同时满足具有大小和方向两个性质的几何对象即可认为是向量

在DCC软件里面可以堪称向量的属性:

向量模:向量的模就是向量的的长度

eg: 向量a的坐标(x,y,z)则其模长为

[图片上传失败...(image-b49f06-1594397658808)]

单位向量:单位向量是模等于1的向量。由于是非零向量,单位向量具有确定的方向。一个非零向量除以它的模,可得所需单位向量。

应用: 一般在DCC软件里面单位向量被用来确定方向,以及求两个向量的角度。

向量的夹角:两个向量的夹角是将二者图示化后两箭头所夹之角

向量的夹角可由点积的定义导出计算公式,即:

[图片上传失败...(image-218fc4-1594397658808)]

二.空间向量坐标的混合运算

[图片上传失败...(image-39c3ee-1594397658808)]

向量的加法

:两个向量组成的平行四边形的对角线,或者三角形法则
:一般在houdini里面通过给其法线@N + 一个向量来改变其法线方向

# vex code
vector a = point(0,'P',0);
vector b = point(1,'P',0);
@N = b-a;

向量减法

:向量减法的差是由减向量指向被减向量得到的新向量,可以把减向量方向调反变成向量加法
:一般在houdini里面通过向量相减,来调整物体爆炸时候的初速度

vector a = @P;
vector b = point(1,'P',0);
@N = -b-a;

向量乘法

\overrightarrow{a\;}=\lbrack x1,\;y1,\;z1\rbrack\\\overrightarrow{b\;}=\lbrack x2,\;y2,\;z2\rbrack

1.向量的点积/标量积

代数定义
向量a与b的点积定义为:

\overrightarrow{a\;}\cdot\overrightarrow{b\;}=\sum_{i=1}^n\;a_ib_j=a_1b_1+a_2b_2+\cdot\cdot\cdot+a_nb_n

几何定义
在欧几里德空间中,点积可以直观的定义为:

\overrightarrow{a\;}\cdot\overrightarrow b\;=\;\left|\overrightarrow a\right|\left|\overrightarrow b\right|\cos\left(\partial\right)
从上述几何定义可知

定义应用

使用 houdini Vex

vector pos1 = {1,2,3};
vector pos2 = {1,0,0};
vector pos1_one = normalize(pos1); # 把向量转换成单位向量
vector pos2_one = normalize(pos2);
float dot_value = dot(pos1_one, pos2_one) # 点积
float angle = acos(dot_value) # 反余弦值

# 欢迎关注微信供公众号CGPipeline获取更多干货

2.向量的叉积

叉积的值还是向量:a向量与b向量的向量积的方向与这两个向量所在平面垂直,且遵守右手定则

代数定义

[图片上传失败...(image-31ab57-1594397658808)]

几何定义
\vert\overrightarrow{a\;}\times\overrightarrow b\vert\;=\;\left|\overrightarrow a\right|\left|\overrightarrow b\right|\sin\left(\partial\right)

从上述几何定义可知

上一篇下一篇

猜你喜欢

热点阅读