Пример #1
0
    public void CreateCubic()
    {
        List <Vector3> points = BezierCurveFormula.GetCubic(p0.transform.localPosition, p1.transform.localPosition, p2.transform.localPosition, p3.transform.localPosition, t, nsegments);

        line.positionCount = points.Count;
        line.SetPositions(points.ToArray());

        SetVisibleControlPoint(p1, true);
        SetVisibleControlPoint(p2, true);

        //guide line
        guideLine.enabled       = showGuideLine & true;
        guideLine.positionCount = 4;
        guideLine.SetPosition(0, p0.transform.localPosition);
        guideLine.SetPosition(1, p1.transform.localPosition);
        guideLine.SetPosition(2, p2.transform.localPosition);
        guideLine.SetPosition(3, p3.transform.localPosition);

        //construction line
        constrLine1.enabled       = showConstLine & true;
        constrLine2.enabled       = showConstLine & true;
        constrLine1.positionCount = 3;
        constrLine1.SetPosition(0, Vector3.Lerp(p0.localPosition, p1.localPosition, t));
        constrLine1.SetPosition(1, Vector3.Lerp(p1.localPosition, p2.localPosition, t));
        constrLine1.SetPosition(2, Vector3.Lerp(p2.localPosition, p3.localPosition, t));
        constrLine2.positionCount = 2;
        constrLine2.SetPosition(0, Vector3.Lerp(constrLine1.GetPosition(0), constrLine1.GetPosition(1), t));
        constrLine2.SetPosition(1, Vector3.Lerp(constrLine1.GetPosition(1), constrLine1.GetPosition(2), t));
    }
Пример #2
0
    public void CreateLinear()
    {
        List <Vector3> points = BezierCurveFormula.GetLinear(p0.transform.localPosition, p3.transform.localPosition, t, nsegments);

        line.positionCount = points.Count;
        line.SetPositions(points.ToArray());

        SetVisibleControlPoint(p1, false);
        SetVisibleControlPoint(p2, false);

        //guide line
        guideLine.positionCount   = 0;
        constrLine1.positionCount = 0;
        constrLine2.positionCount = 0;
        guideLine.enabled         = false;
        constrLine1.enabled       = false;
        constrLine2.enabled       = false;
    }