РЕАЛИЗАЦИЯ ГРАФИЧЕСКИХ ПРИМИТИВОВ НА ОСНОВЕ МЕТОДОВ СРЕДЫ ООП 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
Список литературы
- Буяковская И.А Построение графиков функций в бесплатных средах объектно-ориентированного программирования // Информационно-коммуникационные технологии в педагогическом образовании. 2014. №03 (31).
- Дробахина А.Н. Основы фрактальной графики // Информационно-коммуникационные технологии в педагогическом образовании. 2013. № 1 (23). С. 13-24.
- Основы программирования на языке Visual Basic 6.0: пособие - Брест: БГТУ, 2002.