VEX —— Functions|Math

该博客主要介绍了Houdini中的一系列函数,涵盖数学运算(如绝对值、平均值、三角函数等)、向量运算(如点乘、叉乘)、矩阵运算(如逆矩阵、行列式)以及几何计算(如点与圆位置关系、球与平面相交)等内容,详细说明了各函数的功能和特点。

目录

sign —— 返回给定数的符号标签

abs —— 返回绝对值

avg —— 返回平均值

sum —— 求和

max —— 返回最大值

min —— 返回最小值

rint —— 返回四舍五入后的整数

ceil —— 返回最近的最大整数

floor —— 返回最近的最小整数

frac —— 返回浮点值的小数部分

trunc —— 返回移除浮点值的小数部分

pow —— 返回给定数指定指数

sqrt —— 返回平方根

cbrt —— 返回立方根

exp —— 返回E指数

log —— 返回自然数E的对数

log10 —— 返回10的对数

length —— 计算vector的长度大小

length2 —— 计算vector/vector4的长度平方

normalize —— 标准化矢量

dot —— 点乘(内积)

cross —— 叉乘(外积)


sin —— 返回正弦值

cos —— 返回余弦值

tan —— 返回正切值

asin —— 返回反正弦

acos —— 返回反余弦

atan —— 返回反正切

atan2 —— 返回y/x反正切

sinh —— 返回双曲线正弦

cosh —— 返回双曲线余弦

tanh —— 返回双曲线正切


shl —— 对整数向左移动指定位

shr —— 对整数向右移动指定位

shrz —— 对整数向右移动指定位


resample_linear —— 根据线性插值返回新数组

spline —— 沿polyline、spline采样值

spline_cdf —— 通过采样spline曲线生成CDF

kspline —— 返回沿着曲线的插值

isfinite —— 检测值是否为正常的有限值

isnan —— 检测值是否为数字


Du —— 返回给定值的导数(相对于U)

Dv —— 返回给定值的导数(相对于V)

Dw —— 返回给定值的导数(相对于W)

erf —— 高斯误差函数

erf_inv —— 反向高斯误差函数

erfc —— 高斯误差函数补数


makebasis —— 对给定的Z轴创建正交基准

predicate_incircle —— 确定点是在圆环位置

predicate_insphere —— 确定点是在圆位置

predicate_orient2d —— 确定点方向是在线上

predicate_orient3d —— 确定点方向是在平面上

product —— 返回数字列表的乘积

ptlined —— 返回点到线段的最近距离

sliderframe —— 应用两矢量的最小旋转

solvecubic —— 解算立方函数

solvequadratic —— 解算平方函数

solvepoly —— 解算函数

solvetriangleSSS —— 从边查找三角形角度


quaternion —— 创建四元数

qdistance —— 返回两四元数间的距离

qinvert —— 反转四元数旋转

qmultiply —— 两四元数相乘

qrotate —— 使用四元数旋转矢量


ident —— 返回单位矩阵

invert —— 逆矩阵

determinant —— 计算矩阵的行列式

transpose —— 翻转矩阵

premul —— 预乘矩阵

outerproduct —— 返回外积

diagonalizesymmetric —— 对称矩阵的对角化

eigenvalues —— 计算3*3矩阵的特征值

svddecomp —— 计算3*3矩阵的奇异值分解


planesphereintersect —— 计算3D球与3D平面的相交

combinelocaltransform —— 合并local和parent变换

extractlocaltransform —— 从world变换中提取local变换


sign —— 返回给定数的符号标签
  • 负数-1,零0,整数1;
int sign(int n)
float sign(float n)
vector2 sign(vector2 v)
vector sign(vector v)
vector4 sign(vector4 v)
abs —— 返回绝对值
int abs(int n)
float abs(float n)
<vector> abs(<vector>v)
avg —— 返回平均值
//返回a
int avg(int a)
float avg(float a)
float avg(float a, float b, ...)
//返回分量中的平均值
float avg(vector2 v)
float avg(vector v)
float avg(vector4 v)
vector2 avg(vector2 a, vector2 b, ...)
vector avg(vector a, vector b, ...)
vector4 avg(vector4 a, vector4 b, ...)
<type> avg(<type>arr[])
sum —— 求和
float sum(float n)
int sum(int n)
float sum(<vector>v)
int sum(int nums[])
float sum(float nums[])
<vector> sum(<vector>arr[])
max —— 返回最大值
int max(int value1, int value2, ...)
float max(float value1, float value2, ...)
<vector> max(<vector>value1, <vector>value2, ...)
<type> max(<type>values[])
float max(<vector>values)
<type> max(<type>value)
min —— 返回最小值
int min(int value1, int value2, ...)
float min(float value1, float value2, ...)
<vector> min(<vector>value1, <vector>value2, ...)
<type> min(<type>values[])
float min(<vector>v)
<type> min(<type>value)
rint —— 返回四舍五入后的整数
float rint(float n)
<vector> rint(<vector>v)
ceil —— 返回最近的最大整数
float ceil(float n)
<vector> ceil(<vector>v)
floor —— 返回最近的最小整数
float|int floor(float n)
<vector> floor(<vector>v)
frac —— 返回浮点值的小数部分
float frac(float n)
<vector> frac(<vector>v)
trunc —— 返回移除浮点值的小数部分
//如参数位负值,返回ceil(x),否则返回floor(x)
float trunc(float x)
vector2 trunc(vector2 x)
vector trunc(vector x)
vector4 trunc(vector4 x)
pow —— 返回给定数指定指数
float pow(float n, float exponent)
<vector> pow(<vector>v, float exponent)
sqrt —— 返回平方根
float sqrt(float value)
<vector> sqrt(<vector>value)
  • 负数的平方根为0;
cbrt —— 返回立方根
float cbrt(float n)
vector2 cbrt(vector2 v)
vector cbrt(vector v)
vector4 cbrt(vector4 v)
exp —— 返回E指数
float exp(float n)
<vector> exp(<vector>n)
log —— 返回自然数E的对数
float log(float n)
<vector> log(<vector>v)
log10 —— 返回10的对数
float log10(float n)
<vector> log10(<vector>n)
length —— 计算vector的长度大小
  • 计算字符串长度或数组个数,使用len
float length(float f)
float length(vector2 v)
float length(vector v)
float length(vector4 v)
length2 —— 计算vector/vector4的长度平方
float length2(vector2 v)
float length2(vector v)
float length2(vector4 v)
normalize —— 标准化矢量
<vector> normalize(<vector>v)
dot —— 点乘(内积)
float dot(vector2 a, vector2 b)
float dot(vector a, vector b)
float dot(vector4 a, vector4 b)
float dot(vector a, vector4 b)
float dot(vector4 a, vector b)
float dot(matrix2 a, matrix2 b)
float dot(matrix3 a, matrix3 b)
float dot(matrix a, matrix b)
  • 当vector和vector4点乘时,仅前三个分量被使用;
float dot(<type>a[], <type>b[])
int dot(int a[], int b[])
  • dot(a, b) = dot(a[0], b[0]) + ... + dot(a[n-1], b[n-1]) ,n = min(len(a), len(b));
  • 向量的点乘,即对应分量相乘后在求和,值为标量;
  • 几何意义为,向量在另一向量上的投影(a\bulletb = |a||b|\cos \theta);

cross —— 叉乘(外积)
vector cross(vector a, vector b)
  • 向量叉乘仍为向量,且垂直与原向量的平面;
  • 向量叉乘的模长 |a\timesb| = |a||b|\sin \theta ;
//以新点为原点并设置坐标轴
vector xaxis = normalize(v@v1);
vector zaxis = normalize(cross(xaxis, v@v2));
vector yaxis = normalize(cross(xaxis, zaxis));

for(int i=0; i<100; i++){
    float ang = -ch('ang')*$PI*2*i*0.1;
    if(ang>-@ang){
        vector pos = xaxis*cos(ang)+yaxis*sin(ang)+@P;
        addpoint(0,pos);
    }
}    


sin —— 返回正弦值
//n单位为弧度
float sin(float n)
<vector> sin(<vector>n)

cos —— 返回余弦值
//n单位为弧度
float cos(float n)</
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值