Circle
 
Графический оператор для рисования эллипса или круга

Синтаксис

Circle [target,] [STEP] (x,y), radius[, [color][, [start][, [end][, [aspect][, F]]]]]

Параметры

target
опционально; определяет буфер изображения, для рисования на нем
STEP
указывает, что координаты относительны
(x, y)
координаты центра эллипса
radius
радиус окружности - или для эллипса, большая полуось (то есть длинный радиус)
color
атрибут цвета
start
начальный угол
end
конечный угол
aspect
соотношение сторон эллипса, соотношение высоты к ширине
F
индикатор режима заливки

Описание

Circle нарисует круг, эллипс или дугу, на основе параметров, заданных для него.

target задает буфер для рисования на target , может быть изображением, созданным с помощью ImageCreate или Get (графика). Если опущен, target по умолчанию текущая рабочая страница экрана. (См. ScreenSet)

Центр фигуры будет размещен на целевой поверхности в координатах (x, y).

Radius обозначает радиус фигуры. Если aspect соотношение не является 1.0, самый большой радиус должен быть дан здесь.

Color обозначает атрибут цвета, который определяется режимом (см. Color и Screen (графика) для деталей). Если этот параметр опущен, используется текущий цвет переднего плана , заданный с помощью Color.

Опция Step указывает, что x и y являются смещениями относительно текущей графической позиции курсора.

start и end являются углами в радианах. Они могут варьироваться от -2*PI до 2*PI, где PI константа π, ее примерное значение 3.141593; если указать отрицательный угол, его значение изменяет знак и рисует линию от центра до этого момента в дуге. Угол end может быть меньше, чем start. Если не указаны start и end, рисуется полный круг/эллипс; Если вы указали start без end, end предполагает 2*PI; Если вы указали end без start, start предполагает 0.0.

aspect - это пропорция, или отношение y радиуса к x радиусу. Если этот параметр опущен, по умолчанию для режима ScreenRes - 1.0, а для режима Screen значением по умолчанию является значение, необходимое для рисования на экране идеального круга, помня про пиксельное соотношение сторон. Это значение может быть вычислено следующим образом:

ratio = (y_radius / x_radius) * pixel_aspect_ratio

где pixel_aspect_ratio - это отношение текущей ширины режима над текущей высотой режима, предполагая стандартный монитор 4:3. Если соотношение меньше, чем 1.0, радиус является x радиусом; если аспект больше или равен 1.0, радиус является y радиусом.

F является флагом заливки. Если вы укажете этот флаг, круг / эллипс будет залит выбранным цветом. Это работает только, если вы рисуете полный круг / эллипс.

Пользовательские системы координат, созданные с помощью Window и\или View (графика) влияют на работу рисования; настройки отсечения View применяются также. Когда Circle заканчивает рисунок, текущая позиция графического курсора устанавливается на центр.

Пример

' Установка режима 640x480, 256 цветов
Screen 18

' Рисует круг в центре
Circle (320, 240), 200, 15

' Рисует закрашенный эллипс
Circle (320, 240), 200, 2, , , 0.2, F

' Рисует небольшую дугу
Circle (320, 240), 200, 4, 0.83, 1.67, 3

Sleep




Отличия от QB

  • target является новым в FreeBASIC
  • FreeBASIC реализация использует другой алгоритм для рисования эллипса/дуги в отличии от QB, поэтому результат не может быть равным с QB для каждого пикселя.
  • Флаг F для заливки кругов/эллипсов является новым в FreeBASIC.

См. также