IsInsidePath()
Синтаксис
Result = IsInsidePath(x.d , y.d [, CoordinateSystem])
Описание
Эта функция проверяет, находится ли точка с указанными координатами внутри замкнутой фигуры текущего Векторного контура. То есть, эта функция возвращает не нулевое значение, если данная точка будет залита, в случае вызова функции FillPath().
Параметры
x.d, y.d Координаты точки, которую требуется проверить. CoordinateSystem (дополн.) Определяет используемую для точки систему координат. Этот параметр может быть одним из следующих значений: #PB_Coordinate_Device: Система координат (физических) устройства вывода. #PB_Coordinate_Output: Система координат устройства вывода, с выбранной единицей измерения. #PB_Coordinate_User : Система координат используемая для точек Векторного контура. #PB_Coordinate_Source: Система координат используемая для источника рисования в векторной графике.
Возвращаемое значение
Возвращает не нулевое значение, если точка находится внутри замкнутой фигуры Векторного контура, в противном случае 0.
Комментарии
См. обзор VectorDrawing для ознакомления с различными системами координат.
Пример
; В этом примере используется функция IsInsidePath() для окраски фигуры зеленым цветом, ; когда курсор мыши находится внутри неё, и синим - в противном случае. ; Procedure Draw() x = GetGadgetAttribute(0, #PB_Canvas_MouseX) y = GetGadgetAttribute(0, #PB_Canvas_MouseY) If StartVectorDrawing(CanvasVectorOutput(0)) VectorSourceColor(RGBA(255, 255, 255, 255)) ; стираем предыдущий контент FillVectorOutput() AddPathEllipse(200, 100, 150, 75) ; подготовим контур... If IsInsidePath(x, y, #PB_Coordinate_Device) ; Проверяем, находится ли курсор мыши внутри... VectorSourceColor(RGBA(0, 255, 0, 255)) Else VectorSourceColor(RGBA(0, 0, 255, 255)) EndIf FillPath() ; Заливка замкнутых фигур. StopVectorDrawing() EndIf EndProcedure If OpenWindow(0, 0, 0, 400, 200, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) CanvasGadget(0, 0, 0, 400, 200) LoadFont(0, "Times New Roman", 20, #PB_Font_Bold) Draw() Repeat Event = WaitWindowEvent() If Event = #PB_Event_Gadget And EventGadget() = 0 And EventType() = #PB_EventType_MouseMove Draw() EndIf Until Event = #PB_Event_CloseWindow EndIf
См. также
IsInsideStroke(), FillPath(), ClosePath(), ResetPath()
Поддерживаемые OS
Все