Включено в comp.graphics.faq
Выдержка:
Тема 4.04: Как мне подогнать кривую Безье к кругу?
Интересно, что кривые Безье могут приближаться к кругу, но
не совсем подходит по кругу.
Общее приближение состоит в том, чтобы использовать четыре Безье для моделирования круга, каждый
с контрольными точками расстояние d = r * 4 * (sqrt (2) -1) / 3 от конечных точек
(где r - радиус окружности) и в направлении, касающемся
круг в конечных точках. Это обеспечит середины
Безье на круге, и что первая производная непрерывна.
Радиальная погрешность в этом приближении составит около 0,0273% от
радиус круга.
Michael Goldapp, "Приближение дуг окружности кубическим
полиномы "Компьютерное геометрическое проектирование (№ 8 1991 с.227-238)
Тор Доккен и Мортен Дэлен, "Хорошие приближения кругов
кривые Безье с непрерывной кривизной
Дизайн (№ 7 1990 с. 33-41). http://www.sciencedirect.com/science/article/pii/016783969090019N (не бесплатная статья)
См. Также статью о неоплаченных документах по адресу http://spencermortensen.com/articles/bezier-circle/
.
Браузеры и элемент Canvas.
Обратите внимание, что некоторые браузеры используют кривые Безье для своей дуги рисования холста, Chrome использует (в настоящее время) четырехсекторный подход, а Safari использует восьмисекторный подход, разница заметна только при высоком разрешении, так как 0,0273% и также действительно видимым, только если дуги нарисованы параллельно и не в фазе, вы заметите, что дуги колеблются от истинного круга. Эффект также более заметен, когда кривая анимируется вокруг своего радиального центра, радиус 600px обычно является размером, в котором он будет иметь значение.
Некоторые API рисования не имеют истинного рендеринга дуг, поэтому они также используют кривые Безье, например, платформа Flash не имеет API рисования дуг, поэтому любые платформы, которые предлагают дуги, обычно используют один и тот же подход к кривой Безье.
Обратите внимание, что движки SVG в браузерах могут использовать другой метод рисования.
Другие платформы
Какую бы платформу вы не пытались использовать, стоит проверить, как выполняется дуговое рисование, чтобы вы могли прогнозировать подобные визуальные ошибки и адаптироваться.