Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаборатоные 2 семестр (паскаль) / 3d модуль PABC.NET / Модуль LGraph3dABC руководство пользователя

.docx
Скачиваний:
36
Добавлен:
10.05.2014
Размер:
874.99 Кб
Скачать

Модуль Lgraph3dABC

Руководство пользователя

Описание модуля

Данный модуль надстройка в PascalABC .NET предназначен для упрощения построения 3D графиков. В модуле есть пять процедур для построения графиков. Ниже приводится подробное описание всех процедур и пример программы

Для использования модуля в программе необходимо :

  1. Модуль должен находиться в одной папке с программой.

  2. Подключить его в разделе uses. Также для передачи цветов необходимо подключить встроенный модуль GraphABC. Пример:

uses LGraph3dABC,GraphABC;

Процедура drawOXY

Данная процедура выводит оси графика на экран.

drawXYZ(startX,endX,startY,endY,startZ,endZ:real;Height,Width,indent:integer; var flag:string);Все процедуры модуля можно вызывать только после выполнения процедуры drawXYZ.

Описание переменных:

  1. startX – координата начала оси X

  2. endX – координата конца оси X

  3. startY – координата начала оси Y

  4. endY – координата конца оси Y

  5. startZ – координата конца оси Z

  6. endZ – координата конца оси Z

  7. Height – высота окна

  8. Width – ширина окна

  9. Indent – отступы

  10. Flag – служебный строковый параметр

Пример работы процедуры с параметрами drawXYZ(-10,10,-10,10,0,100,400,600,40,flag);

Процедура drawPoint()

Данная процедура выводит точку функции f(x,y,z)на графике цвет зависит от величины Z.Вызывается только после drawXYZ().

drawPoint(flag:string; x,y,z:real);

Описание переменных:

  1. flag – служебная переменная

  2. x – координата точки X

  3. y –координата точки Y

  4. z – координата точки Z

Пример работы процедуры с параметрами

drawPoint(flag,x1,y1,50);

hx:=20/100; //шаг по оси X

hy:=20/100; //шаг по оси Y

for i:=1 to 100 do

begin

x1:=-10+i*hx;

for j:=1 to 100 do

begin

y1:=-10+j*hy;

drawPoint(flag,x1,y1,50);

end;

end;

Процедура drawPointColor()

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

drawPoint(flag:string; x,y,z:real:clr:color);

Описание переменных:

  1. flag – служебная переменная

  2. x – координата точки X

  3. y –координата точки Y

  4. z – координата точки Z

  5. clr – цвет точки

Пример работы процедуры с параметрами

drawPoint(flag,x1,y1,50,clBlack);

hx:=20/100; //шаг по оси X

hy:=20/100; //шаг по оси Y

for i:=1 to 100 do

begin

x1:=-10+i*hx;

for j:=1 to 100 do

begin

y1:=-10+j*hy;

drawPoint(flag,x1,y1,50,clBlack);

end;

end;

Процедура drawPolygone()

Данная процедура выводит линию на графике.Вызывается только после drawXYZ(). Цвет меняется автоматически.

drawPolygone(flag:string;x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4:real);Описание переменных:

  1. flag – служебная переменная

  2. x1 – координата точки X1

  3. y1 –координата точки Y1

  4. z1 – координата точки Z1

  5. x2 – координата точки X2

  6. y2 –координата точки Y2

  7. z2 – координата точки Z2

  8. x3 – координата точки X3

  9. y3 –координата точки Y3

  10. z3 – координата точки Z3

  11. x4 – координата точки X4

  12. y4 –координата точки Y4

  13. z4 – координата точки Z4

Пример работы процедуры

В данном примере x и y не зависят друг от друга и меняются равномерно по плоскости ниже представлен вид на точки функции сверху, поэтому достаточно для построения одного полигона знать x1

x2 y1 y2, так как x и y будут пробегать по плоскости

Ниже представлена работа процедуры с параметрами

drawPolygone(flag,x1,y1,z(x1,y1),x2,y1,z(x2,y1),x1,y2,z(x1,y2),x2,y2,z(x2,y2));

hx:=20/100; //шаг по оси X

hy:=20/100; //шаг по оси Y

for i:=1 to 100 do

begin

x1:=-10+(i-1)*hx; //x1

x2:=-10+i*hx; //x2

y1:=0;

y2:=0;

for j:=1 to 100 do

begin

y1:=-10+(j-1)*hy; //y1

y2:=-10+j*hy; //y2

drawPolygone(flag,x1,y1,z(x1,y1),x2,y1,z(x2,y1),x1,y2,z(x1,y2),x2,y2,z(x2,y2));

end;

end;

Процедура drawPolygoneColorLine()

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

drawPolygoneColorLine(flag:string;x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4:real;clr:color);

Описание переменных:

  1. flag – служебная переменная

  2. x1 – координата точки X1

  3. y1 –координата точки Y1

  4. z1 – координата точки Z1

  5. x2 – координата точки X2

  6. y2 –координата точки Y2

  7. z2 – координата точки Z2

  8. x3 – координата точки X3

  9. y3 –координата точки Y3

  10. z3 – координата точки Z3

  11. x4 – координата точки X4

  12. y4 –координата точки Y4

  13. z4 – координата точки Z4

  14. clr – цвет полигона

Пример работы процедуры

В данном примере x и y не зависят друг от друга и меняются равномерно по плоскости ниже представлен вид на точки функции сверху, поэтому достаточно для построения одного полигона знать x1

x2 y1 y2, так как x и y будут пробегать по плоскости

Ниже представлена работа процедуры с параметрами

drawPolygoneColorLine(flag,x1,y1,z(x1,y1),x2,y1,z(x2,y1),x1,y2,z(x1,y2),x2,y2,z(x2,y2));

hx:=20/100; //шаг по оси X

hy:=20/100; //шаг по оси Y

for i:=1 to 100 do

begin

x1:=-10+(i-1)*hx; //x1

x2:=-10+i*hx; //x2

y1:=0;

y2:=0;

for j:=1 to 100 do

begin

y1:=-10+(j-1)*hy; //y1

y2:=-10+j*hy; //y2

drawPolygoneColorLine(flag,x1,y1,z(x1,y1),x2,y1,z(x2,y1),x1,y2,z(x1,y2),x2,y2,z(x2,y2),clBlack);

end;

end;

Пример программы с комментариями

uses LGraph3dABC,GraphAbc;

var flag:string;

i,j:integer;

hx,hy,x1,y1,x2,y2:real;

function z(x,y:real):real;

begin

z:=x*x/(2)+y*y/(2);

end;

begin

//создание осей

//-10 10 (первая пара) начало и конец оси X

//-10 10 (вторая пара) начало и конец оси Y

//0 100 начало и конец оси Z

//400 600 высота и ширина экрана на котором будет выводиться график

//40 отступы от краев экрана

//flag служебная переменная необходимая для дальнейшего построения графиков

drawXYZ(-10,10,-10,10,0,100,400,600,40,flag);

hx:=20/100; //шаг по оси X

hy:=20/100; //шаг по оси Y

for i:=1 to 100 do

begin

x1:=-10+(i-1)*hx; //x1

x2:=-10+i*hx; //x2

y1:=0;

y2:=0;

for j:=1 to 100 do

begin

y1:=-10+(j-1)*hy; //y1

y2:=-10+j*hy; //y2

//Вывод полигона

//flag служебная переменная

//x1,y1,z(x1,y1) - первая точка

//x2,y1,z(x2,y1) - вторая точка

//x1,y2,z(x1,y2) - третья точка

//x1,y2,z(x1,y2) - четвертая точка точка

drawPolygone(flag,x1,y1,z(x1,y1),x2,y1,z(x2,y1),x1,y2,z(x1,y2),x2,y2,z(x2,y2));

//построение точек плоскости

//x1 ,y1 , 5 координаты (x,y,z) точки

drawPoint(flag,x1,y1,50);

end;

end;

end.

Приложение (процедура построения графика для лабораторной работы)

Если имеется массив точек не стоит использовать его для дальнейшего построения функции ввиду сложности пробегания точек, достаточно вставить в конец программы строчки приведенные ниже где –d d интервал по x и y

k-количество точек

f(x1,y1) – некая функция например:

function f(x,y:real):real;

begin

f:=x*x/(2)+y*y/(2);

end;

begin

Код рисования графика

drawXYZ(-d,d,-d,d,0,100,400,600,40,flag);

k:=100

hx:=2*d/k; //шаг по оси X

hy:=2*d/k; //шаг по оси Y

for i:=1 to k do

begin

x1:=-d+(i-1)*hx; //x1

x2:=-d+i*hx; //x2

y1:=0;

y2:=0;

for j:=1 to k do

begin

y1:=-d+(j-1)*hy;

y2:=-d+j*hy;

drawPolygone(flag,x1,y1,f(x1,y1),x2,y1,f(x2,y1),x1,y2,f(x1,y2),x2,y2,f(x2,y2));

end;

end;

14

Соседние файлы в папке 3d модуль PABC.NET