Кривая Безье и холст - PullRequest
       8

Кривая Безье и холст

20 голосов
/ 03 апреля 2012

Как нарисовать кривую Безье на холсте.У меня есть только начальная точка и конечная точка.Я хочу нарисовать линию от начальной точки до конечной точки.Как я могу это сделать?

Ответы [ 3 ]

30 голосов
/ 03 апреля 2012

Для этого вы можете использовать Path.quadTo() или Path.cubicTo(). Примеры можно найти в Примерах SDK (FingerPaint). В вашем случае вам просто нужно вычислить среднюю точку и затем передать ваши три точки на quadTo() ..

Код для вас:

  • (x1, y1) и (x3, y3) - ваши начальная и конечная точки соответственно.
  • создать объект рисования только один раз (например, в конструкторе)

    Paint paint = new Paint() {
        {
            setStyle(Paint.Style.STROKE);
            setStrokeCap(Paint.Cap.ROUND);
            setStrokeWidth(3.0f);
            setAntiAlias(true);
        }
    };
    
    final Path path = new Path();
    path.moveTo(x1, y1);
    
    final float x2 = (x3 + x1) / 2;
    final float y2 = (y3 + y1) / 2;
    path.quadTo(x2, y2, x3, y3);
    canvas.drawPath(path, paint);
    
5 голосов
/ 03 апреля 2012

С помощью Path вы можете рисовать кубические и квадратичные кривые Безье.См. cubicTo() и quadTo()

0 голосов
/ 04 октября 2012

Вам нужно установить цвет ... ваш код правильный и изменить x3,x3 на x3,y3 в quadTO().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...