public static Vector3 GetNormalOnCubicCurve(float time, Vector3 up, Vector3 startPosition, Vector3 endPosition, Vector3 startTangent, Vector3 endTangent) { Vector3 tangent = GetTangentOnCubicCurve(time, startPosition, endPosition, startTangent, endTangent); Vector3 binormal = GetBinormalOnCubicCurve(time, up, startPosition, endPosition, startTangent, endTangent); Vector3 normal = Vector3.Cross(tangent, binormal); return normal.normalized; }
public Vector3 GetNormal(float time, Vector3 up) { BezierPoint3D startPoint; BezierPoint3D endPoint; float timeRelativeToSegment; this.GetCubicSegment(time, out startPoint, out endPoint, out timeRelativeToSegment); return(BezierCurve3D.GetNormalOnCubicCurve(timeRelativeToSegment, up, startPoint, endPoint)); }