Прямо сейчас я создаю полигоны с ручками Безье. Работает хорошо, только сейчас я всегда делаю что-то вроде этого:
for(float i = 0; i < 1; i += 0.04)
{
interpolate A, a.handle to B.handle, B at time i
}
Проблема не в том, насколько короткое расстояние или большое расстояние между точками А и В, оно всегда дает одинаковое количество точек. Как я мог это сделать, чтобы он всегда выглядел хорошо, но только интерполировал столько, сколько должен. Пример: если расстояние (A, B) равно 40, то оно может только подразделиться как 15 раз, но тогда, если расстояние (A, B) равно 20, оно может только подразделить 7 раз и т. Д. Как я могу сделать это как функцию качества, если :
float GetThreshold(float distance, float quality)
{
}
Или что-то в этом роде.
Спасибо