Томский государственный университет систем управления и радиоэлектроники
Опубликован: 01.11.2012 | Доступ: свободный | Студентов: 651 / 76 | Длительность: 06:01:00
Лекция 7:

Графические средства

Управление цветом

Стандартная 16-цветная палитра.

ires2 = SetBkColor(color) -  цвет фона.
ires2 = SetColor(color) -  цвет рисования.

Произвольный RGB-цвет.

ires4 = SetBkColorRGB(color) -  цвет фона.
ires4 = SetColorRGB(color) -  цвет рисования.

color = RGBToInteger(R,G,B)
R = 0..255, G = 0..255, B = 0..255

Очистка экрана

call ClearScreen(area)

Управление стилем линий

integer(2) mask_solid(16), &
           mask_dash(16)

! --- сплошная 
mask_solid =(/2#1111111111111111/) 

! --- штрихи 
mask_dash   =(/2#1111000011110000/) 

Изменение типа линий

call SetLineStyle(mask)

Управление маской заполнения

! --- маска заполнения "точки"
integer(1) maska(8) 
maska=(/2#00000000, &
        2#00000000, &
        2#00111100, &
        2#00111100, &
        2#00111100, &
        2#00111100, &
        2#00000000, &
        2#00000000/)

Изменение маски заполнения

call SetFillMask(maska)

Графические примитивы

  1. Пиксел,
  2. отрезок прямой линий,
  3. прямоугольник,
  4. многоугольник,
  5. эллипс (окружность),
  6. дуга окружности,
  7. сектор,
  8. произвольная замкнутая область.

Все графические примитивы при рисовании отображаются текущим цветом рисования, типом линии и маской заполнения.

Отдельный пиксел (физическая система координат)

ires2 = SetPixel(x,y)
ires4 = SetPixelRGB(x,y,color)

(оконная система координат)

ires2 = SetPixel_W(x,y)
ires4 = SetPixelRGB_W(x,y,color)

Группа пикселов

call SetPixels(N,X,Y,COLOR)
  N – число элементов
  X,Y – массивы точек
  COLOR – массив цветов

Отрезок прямой линии

call MoveTo(x1,y1,xy)
ires2 = LineTo(x2,y2,color)

Прямоугольник

ires2 = Rectangle(control,x1,y1,x2,y2)
control:
	$GFILLINTERIOR – заливка;
	$GBORDER – границы.

Эллипс

ires2 = Ellipse(control,x1,y1,x2,y2)
control:
	$GFILLINTERIOR – заливка;
	$GBORDER – границы.

Многоугольник

ires2 = Polygon(control,pt,N), где
integer(2)   ires2, control
type (xycoord)  pt ! массив вершин
integer(2)      N  ! число вершин

Дуга и сектор эллипса

ires2 = Arc(x1,y1,x2,y2,x3,y3,x4,y4)
ires2 = Pie(control,x1,y1,x2,y2,x3,y3,x4,y4)

Произвольная замкнутая область

ires2 = FloodFill(x,y,bordercolor)

Обработка изображений

Запись изображения в bmp-файл

ires4 = SaveImage(FileName,x1,y1,x2,y2) 

Чтение изображения из bmp-файла

ires4 = LoadImage(FileName,x,y)