多语言展示
当前在线:1986今日阅读:26今日分享:39

Processing 3:向量类型的运算和使用(PVector)

介绍在Processing 3中使用向量,进行向量加减单位化,内外积,求夹角等等操作。
工具/原料

Processing 3

方法/步骤
1

使用构造函数new PVector(分量1,分量2[,分量3])来创建新向量。PVector类型有成员x,y,z,分别表示向量的各个分量。

2

使用成员函数set(PVector向量)或者set(x,y,z)来设置一个向量。

3

获取一个随机二维向量有两种方式。返回值方法:v=PVector.random2D()将返回一个模长为1的随机二维向量。设置方法:PVector.random2D(v)将写入PVector向量v的各个分量。

4

按照角度获取一个单位向量也有两种方式。返回值法:v=PVector.fromAngle(角度)设置法:PVector.fromAngle(角度,v)

5

使用成员函数copy()以返回一个复制的向量。v2=v1.copy()即复制一个v1,以v2来引用副本。

6

使用成员函数mag()以获取向量的长度。函数magSq()以获取向量长度的平方(不用开根号了)

7

对一个向量进行数乘有两种方法。成员函数法:v.mult(乘数),将v的各个分量乘以乘数。原地计算。静态函数法:PVector.mult(原向量,乘数,存入向量)div函数类似,只不过是各个分量除以传入的参数。

8

进行向量加法也有两种方法。一种是成员函数法:v.add(v2),原地操作。v将会加上v2另一种是静态函数返回值法:v=PVector.add(v1,v2)

9

dist函数用于计算两个向量的距离,dot函数用于计算两个向量的点积。它们都有成员函数法和静态函数法。同样的,叉乘的计算使用cross函数。

10

normalize,limit和setMag这三个函数都不改变向量的方向,而是对向量的长度产生影响。normalize单位化向量,limit使得向量长度不超过给定,setMag将长度设置为给定。

12

成员函数rotate(角度)将向量就地旋转。只能用于二维向量。

13

向量差值也有两种方式。一种是静态函数:PVector.lerp(v1,v2,t),返回插值向量。另一种是成员函数:v.lerp(v2,t),就地作用于v其中t是0~1之间的数。

14

使用成员函数array可以将一个向量转变为一个数组。有[0],[1],[2]三个元素,分别对应x,y,z

注意事项
1

三维随机向量使用random3D,用法与random2D类似。

2

几乎所有的函数都有成员函数版本和静态函数版本,但要注意并不是所有的成员函数版本都会作用于原有向量。

推荐信息