Документация проекта [[https://visual.sfu-kras.ru|VISUAL / ONLINE OBERON]] ====== Модуль Draw ====== Создание графики и анимации на холсте HTML5. CONST\\ black, white, red, green, blue;\\ Наиболее распространённые цвета.\\ VAR\\ mouseX, mouseY, width, height: INTEGER;\\ focus: BOOLEAN;\\ PROCEDURE **Start** Запуск рисования. PROCEDURE **NoLoop** Отключение режима циклической перерисовки. PROCEDURE **Loop** Включение режима циклической перерисовки. PROCEDURE **Redraw** Перерисовать холст. ===== Установка процедур для обратных вызовов ===== PROCEDURE **SetPreloadProc** (s: PROCEDURE) Установка процедуры для предварительной загрузки изображений и шрифтов. PROCEDURE **SetSetupProc** (s: PROCEDURE) Установка процедуры для настройки модели. PROCEDURE **SetDrawProc** (d: PROCEDURE) Установка процедуры для перерисовки. PROCEDURE **SetPressedProc** (c: PROCEDURE) Установка процедуры для обработки нажатия мыши. PROCEDURE **SetReleasedProc** (c: PROCEDURE) Установка процедуры для обработки отпускания мыши. PROCEDURE **SetOutProc** (c: PROCEDURE) Установка процедуры для события выхода курсора с холста. PROCEDURE **SetOverProc** (c: PROCEDURE) Установка процедуры для события появление курсора над холстом. PROCEDURE **SetKeyPressedProc** (c: PROCEDURE(code: INTEGER): BOOLEAN) Установка процедуры для события нажатия клавиш на клавиатуре. PROCEDURE **SetKeyTypedProc** (c: PROCEDURE(ch: CHAR): BOOLEAN) Установка процедуры для события ввода литеры. ===== Общие ===== PROCEDURE **SetFrameRate** (fps: INTEGER) Устанавливает частоту обновления холста, путём вызова процедуры, установленной в SetDrawProc. PROCEDURE **SetBackgroundRGB**(r, g, b: INTEGER) Устанавливает цвет фона холста в формате RGB. PROCEDURE **SetBackground** (argb: INTEGER) Устанавливает цвет фона холста. PROCEDURE **SetSize** (w, h: INTEGER) Устанавливает размеры холста. PROCEDURE **FillRGBA** (r, g, b: INTEGER; a: REAL) Задаёт цвет заполнения геометрических фигур в формате RGBA. PROCEDURE **FillRGB** (r, g, b: INTEGER) Задаёт цвет заполнения геометрических фигур в формате RGB. PROCEDURE **Fill** (argb : INTEGER) Задаёт цвет заполнения геометрических фигур. PROCEDURE **NoFill** Отключает заполнение геометрических фигур цветом. PROCEDURE **StrokeRGBA** (r, g, b: INTEGER; a: REAL) Задаёт цвет линий и обводки геометрических фигур в формате RGBA. PROCEDURE **StrokeRGB** (r, g, b: INTEGER) Задаёт цвет линий и обводки геометрических фигур в формате RGB. PROCEDURE **Stroke** (argb : INTEGER) Задаёт цвет линий и обводки геометрических фигур. PROCEDURE **NoStroke** Отключает обводку геометрических фигур. PROCEDURE **StrokeWidth** (width: INTEGER) Задаёт толщину линии обводки. PROCEDURE **Smooth** PROCEDURE **NoSmooth** ===== Геометрические фигуры ===== PROCEDURE **Point** (x0, y0: REAL)\\ PROCEDURE **PointInt** (x0, y0: INTEGER) Рисует точку с координатами x0 и y0. PROCEDURE **Line** (x0, y0, x1, y1: REAL)\\ PROCEDURE **LineInt** (x0, y0, x1, y1: INTEGER) Рисует линию из координаты x0, y0 в координату x1, y2. PROCEDURE **Ellipse** (x, y, w, h: REAL)\\ PROCEDURE **EllipseInt** (x, y, w, h: INTEGER) Рисует овал. PROCEDURE **Rect** (x, y, w, h: REAL)\\ PROCEDURE **RectInt** (x, y, w, h: INTEGER) Рисует квадрат. PROCEDURE **RectRounded** (x, y, w, h, r: REAL)\\ PROCEDURE **RectRoundedInt** (x, y, w, h, r: INTEGER) Рисует квадрат с закруглёнными углами. ===== Тексты ===== PROCEDURE **String** (mystr: ARRAY OF CHAR; x, y: REAL; size: INTEGER)\\ PROCEDURE **StringInt** (mystr: ARRAY OF CHAR; x, y, size: INTEGER) Рисует строку размера 'size' с началом в координатах 'x', 'y'. PROCEDURE **LoadFont** (name: ARRAY OF CHAR): Font Загружает шрифт по локальной ссылке не ресурс. Загрузка шрифта в профиле. PROCEDURE **SetFont** (f: Font) Выбор шрифта для последующей орисовки текстов. PROCEDURE **StringWidth**(mystr: ARRAY OF CHAR; size: INTEGER): INTEGER Вычисляет ширину строки установленным шрифтом с заданным размером. ===== Изображения ===== PROCEDURE **LoadImage** (name: ARRAY OF CHAR): Image PROCEDURE **PlaceImage** (image: Image; x, y: REAL) ===== Трансформация ===== PROCEDURE **Translate** (x, y: REAL) PROCEDURE **PushMatrix** PROCEDURE **PopMatrix** PROCEDURE **Rotate** (angle : REAL)