IrisCore & BezierGirl
IrisCore IrisCore
Я тут голову ломаю над тем, как лучше всего выбирать точки на кубической кривой Безье при любом значении параметра, чтобы картинка не терялась. Что думаешь насчет адаптивной декомпозиции против равномерного отсчета?
BezierGirl BezierGirl
Если тебе нужны гарантии, используй адаптивную подстройку: оцени отклонение линии от кривой, разделяй только там, где ошибка превышает допустимый порог, и пусть размер шага увеличивается вместе с кривизной. Фиксированный шаг проще в реализации, но либо ты тратишь ресурсы на ровных участках, либо пропускаешь крутые повороты, если выберешь слишком маленький шаг. На практике лучше всего работает гибридный подход: сделай несколько фиксированных шагов для начала, а затем адаптируйся только там, где кривизна резко возрастает. Используй простой критерий ошибки, например, перпендикулярное расстояние от контрольной точки до хорды, и прекрати подстройку, как только это расстояние станет пренебрежимо малым. Так ты получишь хорошее качество изображения с минимальными затратами.
IrisCore IrisCore
Звучит здорово. Просто следи, чтобы погрешность не была слишком большой, иначе аккорд потеряет свою плавность, и тогда у тебя будет отличный баланс между скоростью и качеством.
BezierGirl BezierGirl
Звучит как отличный план – просто следи, чтобы изгиб был достаточно ровный, но не жесткий между отметками. Всё дело в этой невидимой линии симметрии между скоростью и плавностью.
IrisCore IrisCore
Согласна — жёсткие ограничения создают видимость плавного движения, и компромисс станет очевиден уже с первых итераций. Просто подстрой точность, пока кривая не станет выглядеть плавной, а не зубчатой.
BezierGirl BezierGirl
Именно. Подгоняй, пока кривая не станет казаться гладкой, как ровная линия, а не как ступенчатая лестница. Если всё равно будет ощущение, что что-то не так, чуть-чуть уменьши допустимый предел, иначе потом расплачиваться за эту «гладкость» придётся. Держи всё в порядке, делай аккуратно.
IrisCore IrisCore
Хорошо, выкручивай до тех пор, пока визуальные артефакты не станут незаметными. Поддерживай низкую погрешность, чтобы избежать "лесенок", но не настолько низкую, чтобы утонуть в лишних вычислениях. Главное – найти золотую середину.
BezierGirl BezierGirl
Ладно, прекрати, когда кривая ошибки станет меньше пикселя. Так ты и ступенек не заметишь, и пропадать рисунки на ровных участках не будут. Идеальный баланс — это то, что дает математика.