Я специально не отвечал на этот вопрос ранее, потому что вы используете Android API и функцию Quad, и я подумал, что будет способ увеличить нет.точек в кривой Безье Quadratic это рисование.Я сделал гугл и ничего не нашел сам, но я ждал, чтобы кто-нибудь опубликовал трюк с помощью Android API.
Похоже, что плавность должна быть достигнута вручную путем рисования более высокого разрешения БезьеКривая с использованием кода: Quad функция рисует Quadratic Bezier Curve , здесь - это хорошая ссылка для алгоритма рисования кривых Безье, все, что вам нужно сделать, это увеличить значение no.точек на кривой: Формула квадратичной кривой Безье имеет вид: `
[x, y] = (1 - t) 2P0 + 2 (1 - t) tP1 + t2P2
`И вам нужно уменьшить t, чтобы цикл повторялся больше, чтобы было больше точек и вы могли нарисовать более плавную кривую.
Вот код, который интересен(Я немного изменил его, чтобы мне было проще объяснять):
double t = 0;
Point prevPoint = CalculateBezierPoint(t, p0, p1, p2, p3);
for(int i = 0; i <= 100; i++)
{
Point nextPoint = CalculateBezierPoint(t, p0, p1, p2, p3); //see this part from the link i have given
//Draw line from previous point to next point.
prevPoint = nextPoint;
t = t + (1/100)
}
Чтобы сделать более плавную кривую, увеличьте количество сегментов в цикле for (1000 и т. Д., Поэкспериментируйте с этим), такжеизмените эту строку t = t + (1/100)
(разделите значение на большее число выбранных вами сегментов, i
Используйте это решение в качестве последнего варианта, если вы найдете способ сделать это с помощью Android API, пожалуйста, опубликуйте его здесь какхорошо, и если у кого-то еще есть способ сделать это, пожалуйста, напишите, я жду ответов.