Некоторые режимы, устанавливаемые оператором SCREEN.



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Некоторые режимы, устанавливаемые оператором SCREEN.



SCREEN 0: Текстовый режим

Графические режимы EGA или VGA адаптеров:

SCREEN 1: 320 x 200 пикселей, 4 цвета

SCREEN 2: 640 x 200 пикселей, 2 цвета

SCREEN 7: 320 x 200 пикселей, 16 цветов

SCREEN 8: 640 x 200 пикселей, 16 цветов

SCREEN 9: 640 x 350 пикселей, 16 цветов

SCREEN 10: 640 x 350 пикселей, 2 цвета

SCREEN 11: 640 x 480 пикселей, 2 цвета

SCREEN 12: 640 x 480 пикселей, 16 цветов

SCREEN 13: 320 x 200 пикселей, 256 цветов

 

 

Операторы графики

Операторы вывода точки с заданными координатами

Синтаксис:

PRESET [STEP] (x, y) [, цвет]

PSET [STEP] (x, x) [, цвет]

STEP - указывает, что координаты x и y заданы относительно точки последней ссылки (ТПС)

(x, y) - координаты точки (если опущено STEP, то х и у отсчитываются от левой верхней точки экрана)

<цвет> - код цвета точки растра. Если < цвет> опущен, то PRESET устанавливает точке текущий цвет фона, а PSET - текущий цвет переднего плана.

Пример: Рисуем заданную точку на экране.

SCREEN 1

FOR i = 0 TO 320

PSET (i, 100), 2

NEXT I

Оператор LINE вывода линий и прямоугольников

Синтаксис:

LINE (Xn, Yn) - (Xk, Yk), [цвет], [B|BF]

(Xn, Yn) - координаты начала линии на экране (левого верхнего угла прямоугольника),

(Xk, Yk) - координаты конца линии на экране (правого нижнего угла прямоугольника),

<цвет>- атрибут цвета линии (прямоугольника),

B- параметр рисования прямоугольника,

BF - параметр рисования закрашенного прямоугольника.

Если какой-либо параметр оператора пропущен, то соответствующие разделительные запятые должны быть сохранены.

Оператор LINE с параметрами B, BF удобно использовать для построения ленточных диаграмм.

Построение графиков математических функций

Для построения графика математической функции y = f(x), необходимо учесть, что размер экрана ограничен, а используемые координаты операторов графики неотрицательны и измеряются в пикселях. В то же время функции могут иметь и отрицательные значения и значения, выходящие за пределы размеров экрана. Причем и у, и х функции y = f(x) не измеряются в пикселях.

Поэтому в операторы программы следует подставлять координаты хп и уп, измеряемые в пикселях относительно выбранного центра координат хн, унна экране и вычисляемые по формулам:

хп = мхх + хн

уп = - муу + ун,

где мх и му - масштабные коэффициенты соответственно по осям х и у.

Знак “-“ ставится, так как точек идет из левого верхнего угла экрана.

Чтобы подсчитать масштаб, необходимо найти максимальное и минимальное значения функции на заданном интервале координат построения ее графика. Если нужно построить несколько графиков в одной системе координат, то ищется максимальное и минимальное значения среди всех функций на заданных для них диапазонах аргумента. При этом могут использоваться следующие формулы:

Mx= 640/(Xmax-Xmin)

(640 – если используеться графический режим 12),

My= 480/(Ymax-Ymin).

Этапы построения графика функции

1. Выбираем графический режим экрана

2. Выбираем точку начала координат и строим координатные оси. Если строим их из центра экрана, то точка начала координата будет, например, (320, 240).

3. Определяем диапазоны значений аргументов и функций – Xmax, Xmin, Ymax, Ymin.

4. Вычисляем масштабные коэффициенты мх и му

5. Далее в цикле в заданном диапазоне аргумента хп вычисляем значение функции уп и выводим графическую точку.

6. Выводим на координатные оси единичные отрезки с указанием величины первого из них.

7. Надписываем какой функции выведен график, выбрав нужную позицию с помощью оператора LOCATE.

В отдельных случаях может появиться необходимость изменить значение масштаба. Самый простой способ – это умножение масштаба на какое либо число. То есть, подсчитав масштаб и выведя графики функций, в случае если они недостаточно наглядны, нужно просто ввести дополнительные корректирующие коэффициенты

Оператор CIRCLE вывода окружностей, дуг, эллипсов

Синтаксис:

CIRCLE (X, Y), R, [цвет], [Dn], [Dk], [Z]

где X, Y - координаты центра окружности или эллипса.

R - радиус окружности или эллипса в единицах текущей системы координат, определенной последнимоператорам SCREEN

<цвет> - код цвета окружности,

Dn - начальный угол дуги в радианах,

Dk- конечный угол дуги в радианах,

Z- коэффициент сжатия эллипса (по умолчанию 1).

Для перевода градусов в радианы значение в градусах следует умножить на π / 180.

Углы Dnи Dk отсчитываются от начальной точки дуги к конечной против часовой стрелки. Если одному из углов значение не указывается, то по умолчанию он приравнивается нулю. Если Dn и/или Dk отрицательны, то конечные точки дуги (дуг) соединяются радиусами с центром окружности.

Пример:

SCREEN 2

CLS

CIRCLE (100, 100), 50

CIRCLE (200, 100), 50, , 1, 2

CIRCLE (300, 100), 50, , -2, -1

END

Цвет в графике

Цвет задается в операторах PRESET, PSET, LINE, CIRCLE или оператором COLOR, применение которого в графическом режиме отличается от текстового

Синтаксис:

COLOR <фон>,< номер палитры> ,

где

<фон >– код цвета фона от 0 до 15,

<номер палитры> - номер палитры (0 или 1)

Оба параметра необязательны.

Закрашивание области, которая имеет замкнутый контур можно выполнить оператором PAINT.

Синтаксис:

PAINT (X, Y), <краска>,< контур>

где X, Y - координаты любой точки внутри области,

<краск>а– код цвета для закрашивания,

<контур> – код цвета для контура области.

Оператор рисования объекта.

DRAW <строка команд >

Предназначен для изображения на экране рисунков составленных из комбинаций точек и прямых линий.

Строка команд - Строковое выражение, содержащее одну или несколько команд DRAW.

D[n]Перемещает курсор вниз на n единиц 0 - 240

E[n]Перемещает курсор вправо-вверх на n единиц 0 - 255

F[n]Перемещает курсор вправо-вниз на n единиц 0 - 255

G[n]Перемещает курсор влево-вниз на n единиц 0 - 255

H[n]Перемещает курсор влево-вверх на n единиц 0 - 255

L[n]Перемещает курсор влево на n единиц 0 - 255

M,Z1,Z2 Перемещает курсор в точку Z1, Z2

R[n]Перемещает курсор вправо на n единиц 0 - 255

U[n]Перемещает курсор вверх на n единиц 0 - 240

[B]Необязательная приставка. Перемещает курсор, не рисуя

[N]Необязательная приставка, которая рисует и возвращает курсор в первоначальную позицию

AnПоворачивает объект на n * 90 градусов (n = 0, 1, 2 или 3)

CnУстанавливает рисующий цвет (n - атрибут цвета)

Pn1, n2 Устанавливает цвет заполнения и границы объекта (n1 - атрибут цвета заполнения, n2 - атрибут цвета границы)

SnОпределяет масштаб рисунка, устанавливая единицу длины перемещения курсора. По умолчанию n равно 4, что эквивалентно 1 точке растра

TAnПоворачивает угол на n градусов (от -360 до 360)

 

Если n отсутствует в командах изображения линии и перемещения курсора, курсор перемещается на 1 единицу.

Пример:

COLOR 1,2

PSET (27,40)

DRAW “M127,120;M227,40;L200;D160;R200U160”

В результате получим на экране следующее изображение.

 
 


0,0 27 127

 

 

40

 

 

120

 

 

 
 


Построение диаграмм

При построении ленточной диаграммы необходимо сделать следующие действия. Вначале надо подсчитать масштаб. Для этого необходимо сумму всех участков разделить на использующееся количество точек по вертикали (это количество зависит от номера графического режима). Затем, используя полученное значение масштабного коэффициента, надо пересчитать все участки и использовать эти значения при построении ленточной диаграммы.

При построении круговой диаграммы необходимо, чтобы сумма углов всех участков была равна . Для этого необходимо разделить на накопленную сумму участков и пересчитать размерность участков через этот масштаб.

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



Последнее изменение этой страницы: 2016-04-21; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.239.179.228 (0.011 с.)