Графический оператор для рисования эллипса или круга
Синтаксис
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.
См. также