Esempio n. 1
0
    //Возвращает следующий сегмент квадратичной кривой Безье,
    //Зависящий от предыдущего
    public QuadraticBezierCurve NextDots(QuadraticBezierCurve oldSettings, Vector3 nextPosition, EnemyBoundaries boundaries)
    {
        QuadraticBezierCurve quadraticCurve = new QuadraticBezierCurve();

        quadraticCurve.p0 = oldSettings.p2;

        quadraticCurve.p2 = nextPosition;
        quadraticCurve.p1 = GenerationMath.RandomPositionInCylinder(
            quadraticCurve.p2,
            Vector3.Distance(quadraticCurve.p0, nextPosition),
            boundaries);
        return(quadraticCurve);
    }
Esempio n. 2
0
    //Возвращает следующий сегмент кубической кривой Безье,
    //Зависящий от предыдущего
    public CubicBezierCurve NextDots(CubicBezierCurve oldSettings, Vector3 nextPosition, EnemyBoundaries boundaries)
    {
        CubicBezierCurve cubicCurve = new CubicBezierCurve();

        cubicCurve.p0 = oldSettings.p3;
        cubicCurve.p1 = oldSettings.p2;

        cubicCurve.p3 = nextPosition;
        cubicCurve.p2 = GenerationMath.RandomPositionInCylinder(
            cubicCurve.p3,
            Vector3.Distance(cubicCurve.p0, nextPosition),
            boundaries);
        return(cubicCurve);
    }
Esempio n. 3
0
    //Возвращает четыре точки, нужные для построения кубической кривой Безье
    public CubicBezierCurve CreateCubicLineDots(Vector3 startPosition, Vector3 finishPosition, EnemyBoundaries boundaries)
    {
        CubicBezierCurve cubicCurve = new CubicBezierCurve();

        cubicCurve.p0 = startPosition;
        cubicCurve.p1 = GenerationMath.RandomPositionInCylinder(
            startPosition,
            Vector3.Distance(startPosition, finishPosition),
            boundaries);
        cubicCurve.p3 = finishPosition;
        cubicCurve.p2 = GenerationMath.RandomPositionInCylinder(
            finishPosition,
            Vector3.Distance(startPosition, finishPosition),
            boundaries);
        return(cubicCurve);
    }