Как создать круг с кривыми Bézier?

Один подход, который работал на меня в прошлом, должен был создать класс настроек и сериализацию XML использования для записи его в файловую систему. Вы могли расширить это понятие путем создания набора объектов настроек и сериализации его. У Вас были бы все Ваши настройки для всех пользователей в одном месте, не имея необходимость волноваться об управлении файловой системой.

, Прежде чем любой даст мне любой зенитный огонь для того, чтобы частично перестроить колесо, позвольте мне сказать несколько вещей. Для одного это - только несколько строк кода, чтобы сериализировать и записать файл. Во-вторых, если у Вас есть объект, который содержит Ваши настройки, Вы не должны выполнять множественные вызовы к объекту appSettings при загрузке приложения. И наконец, очень легко добавить объекты, которые представляют Ваше состояние приложений, таким образом, позволяя Вам возобновить продолжительную задачу когда загрузки приложения затем.

85
задан Jon Adams 8 May 2013 в 14:11
поделиться

1 ответ

Это невозможно. Безье - это кубик (по крайней мере ... наиболее часто используемый). Круг не может быть точно выражен кубикой, потому что в уравнении круга содержится квадратный корень. Как следствие, вы должны приблизиться.

Для этого вы должны разделить свой круг на n-танты (например, квадранты, октанты). Для каждого n-танта вы используете первую и последнюю точку как первую и последнюю на кривой Безье. Многоугольник Безье требует двух дополнительных точек. Чтобы быть быстрым, я бы взял касательные к окружности для каждой крайней точки n-танта и выбрал две точки как пересечение двух касательных (так, чтобы в основном ваш многоугольник Безье был треугольником). Увеличьте количество n-значений, чтобы соответствовать вашей точности.

7
ответ дан 24 November 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: