Как я могу рисовать кривую Безье в холсте. У меня есть только начальная точка и конечная точка. Я хочу нарисовать линию от начальной точки до конечной точки. Как я могу это сделать?
Кривая и холст Безье
Ответ 1
Для этого вы можете использовать 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);
Ответ 2
С Path
вы можете нарисовать кубические и квадратичные кривые Безье. См. cubicTo()
и quadTo()
Ответ 3
Вам нужно установить цвет... ваш код верен и измените x3,x3
на x3,y3
в quadTO()
.