图形学曲线的进阶之路
最近冲图形学的时候碰到的Hermate(埃尔米特)曲线,本来只是想看懂绘制思想的,但是在网上看到一篇用U3D生成曲线的博客,自己也心里痒痒了,OpenGL不会用,U3D我还是能摸出来的 >_<
可能后边还会加贝塞尔(Bezier)曲线,先把Hermate曲线摸出来吧
目前只摸出来两点间的曲线,这篇博客应该可以见证我对Hermate的熟练度的增加
Hermate曲线的参数方程
参数方程的原理大概如下图…手写的…难看/扶额
代码如下
public Material linemat;
public int linenum = 10;//这个是画曲线的时候曲线会分成多少段来绘制,即曲线的精细程度
public Vector3[] linepoints=new Vector3[2];//曲线端点
public Vector3[] normals=new Vector3[2];//曲线在端点的切线向量
Vector3[] linepoints2;//整条曲线上的点曲线由N小段直线组成
float t = 0;//参数从0->1表示曲线从起点到终点
LineRenderer line;
Matrix4x4 T, M, G;
Vector4 T1;
int i=0;
// Start is called before the first frame update
void Start()
{
line = GetComponent<LineRenderer>();
linepoints2=new Vector3[linenum];
// line.material = linemat;
line.positionCount = linenum;
InitializedMatrixMG();
}
void Update()
{
for (; i < linenum; i++)
<