博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图形学算法:
阅读量:6686 次
发布时间:2019-06-25

本文共 1097 字,大约阅读时间需要 3 分钟。

1,cubic-bezier

vector start = point(0,"P",0);vector end = point(0,"P",@numpt-1);vector range_01 = fit(@ptnum,0,@numpt-1,0,1);float ix = range_01.x;float dx = end.x - start.x;float dy = end.y - start.y;vector p2 = set(start.x + dx * 0.5 , start.x + dy * 0.1, 0 );vector p3 = set(start.x + dx * 0.5 , start.x + dy * 0.9, 0 );float x= pow((1-ix),3) * start.x + 3* pow((1-ix),2) * ix * p2.x + 3*(1 - ix)* pow(ix,2) * p3.x + pow(ix,3) * end.x;  float y= pow((1-ix),3) * start.y + 3* pow((1-ix),2) * ix * p2.y + 3*(1 - ix)* pow(ix,2) * p3.y + pow(ix,3) * end.y;  @P.x = x;@P.y = y;
View Code

 https://en.wikipedia.org/wiki/B%C3%A9zier_curve

如果将代码的0.1 和 0.9改成0.5 , 0.5 又会变成直线。

 

2 Houdini中的四元数.

float theta = @Time ;vector axis = set(0,1,0);float vx = axis.x * sin(theta/2);float vy = axis.y * sin(theta/2);float vz = axis.z * sin(theta/2);float s = cos(theta/2);vector v = set(vx,vy,vz);// so the q = 
@P = @P * s *s + cross(v*2*s , @P) + v * dot(v,@P ) - cross(cross(v,@P),v);

 

q = cos(theta/2) + A*sin(theta/2)

A表示旋转轴向。是个单位向量

还需要个q的共轭四元数

 

转载于:https://www.cnblogs.com/gearslogy/p/7763263.html

你可能感兴趣的文章
mysql单表导入数据,全量备份导入单表
查看>>
GAITC 2019全球人工智能技术大会(南京)
查看>>
使用gradle生成protobuf
查看>>
transition transform animate的使用
查看>>
WebService_HelloWorld
查看>>
【翻译】Ext JS最新技巧——2014-5-12
查看>>
全局临时表
查看>>
谈谈加载(Loading)的那点事
查看>>
关于nginx的Job for nginx.service failed because the control process exited with error code.错误
查看>>
微信公众平台开发(108) 微信摇一摇
查看>>
OfType 使用LINQ查询动态数组中指定类型的元素
查看>>
linux环境中如何删除文件的前n行?
查看>>
.Net转Java自学之路—SpringMVC框架篇七(Json数据交互)
查看>>
jQuery通过name获取值
查看>>
团队任务二
查看>>
Python读写excel
查看>>
phpcms网站搬家 至 服务器 完整并且详细过程
查看>>
myBatis针对不同数据库的模糊查询
查看>>
列表转字典
查看>>
编译基于obs-studio的阿里巴巴直播工具tblive的过程和常见问题解决
查看>>