/// <summary> /// 获取样条曲线 /// </summary> /// <param name="points">基准点</param> /// <returns>样条曲线</returns> public static List <Vector3> FetchCurves(int ratio, params Vector3[] points) { if (points == null || points.Length == 0) { return(null); } List <SplineCurves> splines = new List <SplineCurves>(); SplineCurves current, pre; foreach (var point in points) { if (splines.Count == 0) { current = new SplineCurves(ratio); current.AddJoint(null, point); splines.Add(current); } else { current = new SplineCurves(ratio); pre = splines[splines.Count - 1]; current.AddJoint(pre, point); splines.Add(current); } } List <Vector3> curves = new List <Vector3>(); foreach (SplineCurves spline in splines) { if (spline.First) { continue; } foreach (Vector3 point in spline.points) { if (curves.Contains(point)) { continue; } curves.Add(point); } } return(curves); }