Здравствуйте, McSeem2, Вы писали:
MS>Для этого надо взять каноническое уравнение окружности X^2 + Y^2 = R^2. Далее предположим, что у нас уже есть некая "затравочная" точка на окружности (почти на окружности). Для нее считаем выражение
MS>abs(X*X + Y*Y — R*R)
MS>Это будет значение оценочной функции. Далее выполняем три пробных шага — вычисляем для (X+1,Y), (X,Y+1) и (X+1,Y+1) и шагаем в ту сторону, в которой значение оценочной функции минимально.
MS>Вместо "+1" может быть "-1". В первом квадранте dx=-1, dy=+1, во втором -1,-1 и т.д.
MS>Фишка еще в том, что на каждом шаге нам не обязательно умножать. X^2 и Y^2 легко вычисляются инкрементальным способом. Ну, для затравочной точки надо посчитать все честным способом.
Хм... Что за оценочная функция??? Что она оценивает??? Я не очень понял эту математику. Главной проблемой для меня является как раз определение в каком квадранте начинается и в каком заканчивается дуга, а также, зная что рисуется дуга против часовой стрелки, как определить в какие квадранты она вообще пересекает. А зная это, я смогу воспользоваться процедурой наподобии описанной в первом посте для круга но только первую половину рисовать от какой-то точки и вторую.