MaxScript学习笔记目录
大家好,我是阿赵,在周日的早上继续分享maxScript的学习笔记。这是第四篇,maxScript特殊对象类型
1、name
name有点类似于字符串的简单版,他能通过强转变成string,但本身不能使用string的所有方法。
2、color
颜色的构造:color r g b a
也可以用常用的颜色单词替代,比如white、black、green、blue之类的默认颜色
3、point
point可以理解成是多维坐标,包含的是浮点数,最低二维,最高四维,比如point2是二维坐标,代表xy坐标,point3是三维坐标,代表xyz坐标,point4是四维坐标,代表xyzw坐标
注意,高维度的point可以赋值给低维度的point,但反过来不行
point的用法:
1.可以进行类型转换
上面是把point3转成color的用法例子
2.point的复制
从上面的例子可以看出,直接用等号复制,是浅拷贝,原始point改变,拷贝的也跟着改变。而用copy做复制的,是深拷贝,原始point改变后,拷贝的不会跟着改变。
3.取矢量长度
用length方法可以去得point的矢量长度
4.取两个坐标中间的随机点
5.获取两个坐标点的距离
用diatance方法可以获取两个点的距离
6.向量标准化
用normalize方法可以得到向量标准化,得到长度为1向量
7.向量点乘
用dot方法可以对两个向量进行点乘操作
值得注意的是,point2是不能点乘,point3和point4是可以点乘
如果是想计算夹角,应该先对向量进行归一化操作,让dot的结果取值范围限制在-1到1之间
8.向量叉乘
用cross可以对向量进行叉乘
注意,由于向量叉乘是求同时垂直于2个向量的第三个向量,所以从几何含义来说,叉乘是三维向量特有的操作,所以point2和point4是不能做叉乘运算的
4、ray
通过 ray 坐标 方向 可以创建一条射线
可以通过intersectRay方法,求某物体和射线的交点,如果没有找到交点,返回undefined,如果有交点,会返回一条新的射线,射线的起点是交点坐标,方向是物体表面相交点的法向量
5、quat和angleaxis和eulerangles
物体的旋转rotation属性,使用的是四元数赋值,可以用quat x y z w来构造四元数
旋转属性也可以直接指定沿着某个轴旋转多少度,使用angleaxis 角度 轴向
旋转也可以直接指定欧拉角,x、y、z的角度
最终得到的结果是一样的
6、matrix3
matrix3矩阵操作,可以直接构建矩阵,也可以通过四元数强转矩阵
用point3和矩阵相乘,达到转换的目的
7、BigMatrix
如果觉得matrix3的行列数不够用,也可以用BigMatrix来生成指定行列的数的矩阵
8、三角函数
可以使用sin、cos、tan、asin、acos、atan来进行三角函数的计算