Пропустить навигацию.
Главная

Окружности, эллипсы, дуги и сектора

Для начала напомним, что канонические уравнения окружности и эллипса с центром в начале координат выглядят следующим образом:

Здесь 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.