- Машинная графика
- Рисуем? Где? Чем?
- Что позволяет рисовать система VB?
- Работа с отдельными точками
- Отрезки прямых и прямоугольники
- Окружности, эллипсы, дуги и сектора
- Очистка канвы графического объекта
- Что позволяют рисовать системы BCB и Delphi?
- Отрезки прямых и ломаные
- Стандартные прямоугольники
- Нестандартные многоугольники
- Кривые второго порядка
- Обмен с графическими файлами
- Вывод символьных и числовых данных на канве
- Отображение текстовой и числовой информации в VB
- Работа с текстами в BCB и Delphi
- Графические объекты в системе VB
- Графические объекты в системах BCB и Delphi
- Копирование растровых изображений
- Создание монотонно изменяющегося фона
- Формирование регулярных заливок замкнутых областей в BCB
- Формирование регулярных заливок замкнутых областей в Delphi
Окружности, эллипсы, дуги и сектора
Опубликовано admin в Чт, 03/18/2010 - 23:33
Для начала напомним, что канонические уравнения окружности и эллипса с центром в начале координат выглядят следующим образом:

Здесь r — радиус окружности, a и b — полуоси эллипса вдоль оси x и y, соответственно. При a=b эллипс превращается в окружность, а величина, пропорциональная отношению полуосей, определяет эксцентриситет эллипса. Более точно, эксцентриситетом эллипса называют величину e (1>e³ 0), которая вычисляется по следующей формуле:
e=
, где k=min(a/b, b/a)
При е=0 оба фокуса эллипса, расположенные на большей полуоси, сливаются в центр окружности. Увеличение эксцентриситета пропорционально увеличению расстояния между фокусами, что эквивалентно растяжению окружности по той или иной оси.
Для построения окружности, эллипса или их дуги вызывается один и тот же метод Circle:
[object.]Circle [Step](x,y),r,[color,a1,a2,e]
Точка с абсолютными или относительными координатами (x,y) задает центр окружности или эллипса.
Параметр r задает радиус окружности или участвует в определении полуосей эллипса, если задан последний параметр — коэффициент сжатия e, который может быть как больше, так и меньше 1. Значения координат, радиуса и коэффициента сжатия могут быть вещественными (тип Single).
Цвет контура определяется необязательным параметром color, значение которого имеет тип Long. Код цветности можно задать с помощью одной из функций RGB или QBColor. При отсутствии параметра color цветом пера считается значение свойства ForeColor. Дополнительное влияние на результирующий цвет может оказать значение свойства DrawMode.
Параметры a1 и a2 задают в радианах угол начального и конечного радиус-векторов дуги. Углы отсчитываются в направлении против часовой стрелки от оси x и могут меняться в диапазоне от -2p до 2p. По умолчанию a1=0, a2=2p. Построение дуги всегда выполняется от угла a1 к углу a2. Вообще говоря, в определении начальной и конечной точки дуги всегда участвуют абсолютные значения углов a1,a2. Знак минус у любого из них воспринимается как указание о соединении соответствующей граничной точки с центром. Если оба угла заданы со знаками минус, то вместо дуги будет построен круговой или эллиптический сектор.
На толщину и способ отображения контура влияют текущие значения свойств DrawWidth и DrawStyle.
Замкнутая фигура — полная окружность или полный эллипс, — могут быть залиты или заштрихованы, если предварительно были заданы соответствующие значения свойств FillColor и FillStyle.
