РЕАЛИЗАЦИЯ ГРАФИЧЕСКИХ ПРИМИТИВОВ НА ОСНОВЕ МЕТОДОВ СРЕДЫ ООП GAMBAS

Раздел: Научно-практическая работа студентов педагогического вуза

Журнал: Информационные технологии в образовании и научная работа студентов

11 июня 2015 г.

Авторы: Ивахненко Татьяна

Т. Ивахненко

Научный руководитель к.п.н., доцент Буяковская И.А.

РЕАЛИЗАЦИЯ ГРАФИЧЕСКИХ ПРИМИТИВОВ НА ОСНОВЕ МЕТОДОВ СРЕДЫ ООП GAMBAS

Среда Gambas представляет собой объектно-ориентированный диалект языка BASIC, дополненный интегрированной средой разработки и работающий на Linux и других UNIX-подобных операционных системах. Он представляет собой средство разработки программного обеспечения, аналогичное Visual Basic. Он выступает в качестве альтернативы проприетарному программному продукту Microsoft Visual Basic. Разработка Gambas была начата в Париже Бенуа Минисини в 1999 году.

Gambas позволяет разрабатывать GUI-программы с графическим интерфейсом пользователя, поскольку он включает конструктор форм, редактор кода, обозреватель кода, интегрированную систему помощи.

Рассмотрим работу в графическом режиме в среде объектно-ориентированного программирования Gambas. Для рисования на форме используются графические методы вызов которых организуется следующим образом: Объект.Метод(аргументы). Первоначально необходимо определить область рисования: Draw.Begin(DrawingArea1). После этого форма превращается в холст для рисования с системой координат: единица измерения в данном случае выступает пиксель. Каждая точка определяется парой целых чисел - координатами (х, у).

Для создания графических образов в среде Gambas можно применять такие методы, как: Line, Circle, Point и др.

Например:

Draw.Line(xl, yl, х2,  y2) вычерчивает отрезок прямой между точками с координатами (x1, y1) и (х2, у2).

Draw.Point(x, y) вычерчивает точку с координатами (x,y).

Draw.Rect(x, у, w, h) чертит прямоугольник, задаваемый координатами верхнего левого угла (х, у), шириной w пикселей и высотой h пикселей.

Draw.Polygon(x1, y1, ...,  xn, yn) чертит замкнутый многоугольник, последняя точка соединяется с первой. Draw.Polygon(100,1, 100,50, 120, 1).

Draw.Circle(x, у, r) чертит окружность с центром в точке (x,y) и радиусом r.

Draw.Ellipse(x, у, w, h) чертит овал, вписанный в прямоугольник, заданный аргументами метода. Draw.Ellipse(50,40,10,20)

Перед рисованием можно задать цвет линий:

-       Draw.ForeColor = Color.Black ← установка системного цвета

-       Draw.ForeColor = Color.RGB(К, З, С)← установка пользовательского цвета смешиванием красной, зеленой и синей составляющих или сразу определить цвет закраски фигуры: Draw.FillColor = Color.Цвет.

Задача 1. Выполните построение окружностей со случайными координатами центров, различных размеров и цветом заливки.

Для этого создадим приложение, на котором расположим следующие объекты:  DrawingArea1, расположенный во вкладке Container и три кнопки Button.


Рисунок 1. Проект по рисованию случайных окружностей с разными стилями заливки, цвета, местоположения и размера

Листинг программы к задаче№1.

PUBLIC SUB Button2_Click()

ME.Close

END

PUBLIC SUB Button1_Click()

DIM r, x, y, i, n, s AS Integer

Draw.Begin(DrawingArea1)

n = Rnd(5, 25)

FOR i = 1 TO n

r = Rnd(10, Draw.Width DIV 15)

x = Rnd(10, Draw.Width - r)

y = Rnd(10, Draw.Height - r)

s = Rnd(255, 16778060)

Draw.FillStyle = Rnd(1, 14)

Draw.FillColor = s

Draw.Circle(x, y, r)

NEXT

Draw.End

END

PUBLIC SUB Button3_Click()

DrawingArea1.Refresh

END

Задача 2. Используя графические методы Gambas выполнить построение графического примитива (домик), где каждое последущее

изображение будет меньше предыдущего на 15 %.

Рисунок 2. Проект по созданию графических примитивов в цикле

Листинг программы к задаче №2.

PUBLIC SUB Button1_Click()

DIM x, y, n, r, i, k, m AS Integer, k1 AS Float 

Draw.Begin(DrawingArea1)

r = 100

x = 10

y = Draw.Height DIV 4

i = 0

k1 = 1

n = TextBox1.Text

FOR k = 1 TO n

Draw.FillStyle = Rnd(1, 12)

Draw.FillColor = Rnd(255, 16778060)

Draw.Rect(x + i, y, Round(r * k1 * 2), Round(r * k1 * 2))

Draw.Rect(x + (r DIV 2) * k1 + i, y + (r DIV 2) * k1, r * k1, r * k1)

Draw.Line(x + (r DIV 2) * k1 + i, y + r * k1, x + r * k1 + (r DIV 2) * k1 + i, y + r * k1)

Draw.Line(x + r * k1 + i, y + (r DIV 2) * k1, x + r * k1 + i, y + r * k1 + (r DIV 2) * k1)

Draw.Polygon([x + i, y, x + r * k1 + i, y - r * k1, x + r * k1 * 2 + i, y])

i = i + r * 3 * k1

k1 = k1 - 0.25

NEXT

Draw.End

END

PUBLIC SUB Button3_Click()

DrawingArea1.Refresh

END

PUBLIC SUB Button2_Click()

ME.Close

END

Список литературы

  1. Буяковская И.А Построение графиков функций в бесплатных средах объектно-ориентированного программирования // Информационно-коммуникационные технологии в педагогическом образовании. 2014. №03 (31).
  2. Дробахина А.Н. Основы фрактальной графики // Информационно-коммуникационные технологии в педагогическом образовании. 2013. № 1 (23). С. 13-24.
  3. Основы программирования на языке Visual Basic 6.0: пособие - Брест: БГТУ, 2002.
PDF