PureBasic

AddPathEllipse()

Синтаксис

AddPathEllipse(x.d , y.d , RadiusX.d , RadiusY.d [, StartAngle.d , EndAngle.d [, Flags]])

Описание


Добавляет Эллипс (или частичный Эллипс) к векторному контуру.

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

Параметры

x.d, y.d Координаты задающие центральную опорную точку эллипса.
RadiusX.d, RadiusY.d Значения, определяющие радиус эллипса в направлении X и Y.
StartAngle.d, EndAngle.d (дополн.) Значения, определяющие угол рисования начала и конца эллипса в градусах. Угол 0 указывает на положительную ось X. Значения по умолчанию - 0 и 360 градусов соответственно.
Flags (дополн.) Это может быть комбинацией следующих значений:
  #PB_Path_Default          : Без специальных опций (по умолчанию)
  #PB_Path_Relative         : Координаты относительно последней позиции курсора.
  #PB_Path_Connected        : Контур эллипса будет связан линией с контуром текущей фигуры,
                       и не будет считаться отдельной замкнутой фигурой.
  #PB_Path_CounterClockwise : Рисование между углами начала и конца эллипса будет против часовой стрелки.

Возвращаемое значение

Ничего.

Комментарии

Эта функция предназначена для рисования контуров отдельных эллипсов, с заданным радиусом по осям X и Y текущей системы координат. Чтобы нарисовать контур эллипса под углом, перед его добавлением необходимо повернуть систему координат вокруг центра эллипса, как показано в примере ниже. Текущую систему координат можно сохранить с помощью SaveVectorState() и восстановить с помощью RestoreVectorState().

Пример

If OpenWindow(0, 0, 0, 400, 200, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    CanvasGadget(0, 0, 0, 400, 200)

    If StartVectorDrawing(CanvasVectorOutput(0))

        ; Обычный эллипс.
        AddPathEllipse(100, 100, 80, 30)

        ; Повёрнутый эллипс.
        SaveVectorState()
        RotateCoordinates(300, 100, 45)
        AddPathEllipse(300, 100, 80, 30)
        RestoreVectorState()

        VectorSourceColor(RGBA(255, 0, 0, 255))
        StrokePath(10)

        StopVectorDrawing()
    EndIf

    Repeat
        Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
EndIf

См. также

MovePathCursor(), AddPathLine(), AddPathArc(), AddPathBox(), AddPathCircle(), AddPathCurve()

Поддерживаемые OS

Все

<- AddPathCurve() - Оглавление VectorDrawing - AddPathLine()->