Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ.docx
Скачиваний:
13
Добавлен:
06.08.2019
Размер:
163.01 Кб
Скачать

Метод box

Метод Box предназначен для отрисовывания прямоугольников. Существует два способа вызова метода Box (как и у метода Line)

_SCREEN.Box(X1, Y1, X2, Y2) – рисует прямоугольник от точки X1, Y1 до точки X2, Y2

_SCREEN.Box(X, Y) – отрисовывает прямоугольник от текущей точки до точки X, Y

Единицы измерения задаются свойством ScaleMode. По умолчанию ScaleMode = 3, единицы измерения – пиксели (pixel), экранные точки. Второй тип единиц измерения – фоксели (foxel) соответствуют ScaleMode = 0. По величине один фоксель составляет среднюю высоту символа текущего шрифта. Ширина, цвет и стиль линии прямоугольника задаются методами DrawWidth, ForeColor, DrawStyle, заливка определяется свойствами FillStyle, FillColor

В качестве примера приведем программу построения гистограммы по десяти  значениям функции f(x) = x^2 для  0< x < 5

 

_screen.cls

x=-2

X1= 300 + 100*x

Y1= 300 - 100*f(x)

_screen.CurrentX=X1

_screen.CurrentY=Y1

For x= 0 to 5 step 0.5

X1= 300 + 50*x

Y1= 300 - 10*f(x)

_screen.box(X1, 300, X1+20, Y1)

endfor

function f

parameters x

return 8-0.5*(x+0.5)*(x-2)*(x-5.2)

Метод Circle

Метод Circle предназначен для отрисовывания эллипсов и окружностей. Использовать его нужно следующим образом: _scren.Circle (R [, X, Y  [, A]]) – здесь R – радиус окружности, X,Y – координаты центра окружности, A – отношение вертикального и горизонтального радиусов эллипса.

_screen.circle(100,100,100) – рисует окружность радиуса 100 точек с центром в точке 100,100.

_screen.circle(100,100,100,2) – отрисовывает эллипс с вертикальным радиусом 100, горизонтальным – в два раза меньшим, чем вертикальный.

Для управления цветом, толшиной и стилем линии отрисовываемой окружности или эллипса используйте свойства ForeColor, DrawWidth, DrawStyle. Для отрисовки заполненных эллипсов или окружностей используйте свойства FillStyle,FillColor.

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

Для управления толщиной линии рисования применяется свойство DrawWidth

_screen.DrawWidth = 1 задает толщину линии в один пиксель.

_screen.DrawWidth = 3 задает толщину линии в три пикселя.

Вид линии определяется свойством DrawStyle

Основные значения свойства DrawStyle:

Значение

Описание

0

(по умолчанию) сплошная линия

1

Тире

2

Точки

3

Точка-тире

4

Тире-точка-тире

Важно заметить, что если толщина линии больше 1, то свойства больше 1 будут давать сплошную линию.

В качестве примера, изобразим пять прямоугольников, отрисованных разными стилями линий:

_screen.cls

_screen.backcolor = rgb(255,255,255)

_screen.fillcolor = 0

_screen.drawwidth = 1

_screen.fillstyle = 1

x=100

For I=0 to 4

_screen.drawstyle = i

_screen.box(x,300,x+50,350)

x=x+50

Endfor

 

Режим взаимодействия линии и фона задается свойством DrawMode.

Список наиболее часто употребляемых значений свойства DrawMode

Значение

Описание

1

(Blackness Pen) Рисование черным цветом.

6

(Invert) Обращение цвета BackColor.

7

(XOR Pen) Комбинация цветов ForeColor и BackColor, но не оба цвета

11

(NOP) Нет операции. Выключение рисования.

13

(Copy Pen) Отрисовка производится цветом ForeColor. Эта установка действует по умолчанию

16

(Whiteness Pen) Отрисовка белым цветом.

 

Пример использования стиля Invert – DrawMode = 6:

_screen.cls

_screen.fillstyle = 0

_screen.fillcolor=0

_screen.backcolor = rgb(255,0,200)

_screen.drawmode=6

_screen.circle(100,200,200)

В результате выполнения фрагмента на малиновом фоне изобразится круг заполненным зеленым (дополнительным к малиновому) цветом, несмотря на то, что задан черный цвет заполнения.

 

Пример использования стиля XOR Pen  (XOR – исключающее или) – DrawMode = 7:

_screen.cls

_screen.fillstyle = 0

_screen.fillcolor=100

_screen.backcolor = rgb(255,0,200)

_screen.drawmode=7

_screen.circle(90,200,200)

_screen.drawmode=13

_screen.circle(90,400,200)

В данном примере установлены малиновый цвет фона и черный цвет заполнения. Отрисовываются два круга: левый – стилем XOR Pen (он заполнен бледным фиолетовым цветом – дополнительным к комбинации цвета фона и цвета заполнения), правый – стилем Copy Pen (он, естественно, заполнен черным цветом).

Рисование заполненных фигур

Стилем заполнения фигур управляет свойство FillStyle

_SCREEN.FillStyle= N, где число N определяет вид заполнения

 

Значение

Описание

0

Сплошное заполнение цветом FillColor.

1

(По умолчанию) Прозрачный стиль. Свойство FillColor игнорируется.

2

Заполнение горизонтальными линиями.

3

Заполнение вертикальными линиями.

4

Диагональ из верхнего левого в нижний правый.

5

Нисходящая диагональ. Диагональ из нижнего левого угла в верхний правый.

6

Заполнение прямым крестом.

7

Заполнение диагональным крестом.

 

Например, нарисуем восемь кругов, заполненных зеленым цветом, но разными стилями.

_screen.cls

_screen.backcolor = rgb(255,255,255)

_screen.fillcolor = rgb(0,255,0)

x=100

For I=0 to 7

_screen.fillstyle = i

_screen.circle(50,x,200)

x=x+50

Endfor

 

Получить цвет данной точки экрана VFP можно при помощи метода Point. Цвет возвращается в виде числа RGB.

Например, нижеприведенный фрагмент кода после выполнения выведет на экран значение цвета в центре красного круга – 255:

_screen.fillcolor=RGB(255,0,0)

_screen.fillstyle=0

_screen.circle(50,100,100)

x = _screen.point(100,100)

_screen.currentx=200

_screen.print(str(x))