Описание тега geometric-arc
Геометрическое определение:
Дуга - это геометрическая фигура, используемая для рисования сегментов круга. Он состоит из трех основных частей:
- при взгляде θ: угловая мера для первой части подкруга, обычно в радианах
- окончание θ: угловая мера для конечной части подкруга, обычно в радианах
- radius: радиус круга, частью которого является эта дуга.
Дуги в компьютерном программировании невозможно точно представить, поскольку значение π бесконечно. Таким образом, любой круг или дуга, которые вы видите, всегда будут немного неточными, хотя большинство алгоритмов обычно поддерживают это с несколькими пикселями.
Длину дуги можно приблизительно определить по следующей формуле:
Обратите внимание, что в некоторых системах длина дуги может быть отрицательной, указывая, что она движется по кругу против часовой стрелки, а не по часовой стрелке. Обычно это представлено логическим флагом, устанавливаемым вызывающей функцией.
В конкретных системах:
Для окон дуги можно рисовать с помощью функций gdi+, а также можно рисовать дуги эллипсов.
Пример на C#:
void drawArc(Graphics myGraphics, Pen myPen, float x, float y, float startTheta, float endTheta, float radius)
{
myGraphics.DrawArc(myPen, x - radius, y - radius, radius * 2, radius * 2, startTheta, endTheta);
}
Дуги также можно рисовать с помощью эквивалентных функций рисования C++.
В Mac OS X дуги можно рисовать с помощью класса NSBezierPath в AppKit.
Пример в объекте-c:
void drawArc(float x, float y, float startTheta, float endTheta, float radius)
{
NSBezierPath *bezierPath = [NSBezierPath bezierPath];
[bezierPath appendBezierPathWithArcWithCenter:CGPointMake(x, y) radius:radius startAngle:startTheta endAngle:endTheta];
[bezierPath stroke]; // draws with current set color
}
В Java вы также можете рисовать дуги, используя переносимые функции класса Graphics.