Как нарисовать дугу с двумя точками и радиусом и по часовой стрелке - PullRequest
0 голосов
/ 10 февраля 2011

Проблема в том, чтобы нарисовать дугу с двумя точками на растровом изображении с радиусом и по часовой стрелке.

1 Ответ

1 голос
/ 10 февраля 2011

Из вашего вопроса, состоящего из одного предложения, я предполагаю, что вы хорошо рисуете кривые Безье. Если нет, то есть много информации о них.

В любом случае, вы не можете создать идеальную дугу с кривыми Безье (или сплайнами). То, что вы можете сделать, это приблизить окружность к уровню, когда глаз не сможет увидеть разницу. Это обычно делается с 8 квадратичными сегментами кривой Безье, каждый из которых покрывает 1/8 круга. То есть, как Adobe Flash создает круги.

Если вы после простой параметризации с использованием sin и cos, это намного проще:

for (float t = 0; t < 2 * Math.PI; t+=0.05) {
    float x = radius * sin(t);
    float y = radius * cos(t);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...