目录
length2 —— 计算vector/vector4的长度平方
resample_linear —— 根据线性插值返回新数组
spline_cdf —— 通过采样spline曲线生成CDF
predicate_incircle —— 确定点是在圆环位置
predicate_insphere —— 确定点是在圆位置
predicate_orient2d —— 确定点方向是在线上
predicate_orient3d —— 确定点方向是在平面上
diagonalizesymmetric —— 对称矩阵的对角化
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
b = |a||b|
);
cross —— 叉乘(外积)
vector cross(vector a, vector b)
- 向量叉乘仍为向量,且垂直与原向量的平面;
- 向量叉乘的模长 |a
b| = |a||b|
;
//以新点为原点并设置坐标轴
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)</

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

最低0.47元/天 解锁文章
1596

被折叠的 条评论
为什么被折叠?



