Лабораторная работа №3 по компьютерной графике icon

Лабораторная работа №3 по компьютерной графике



НазваниеЛабораторная работа №3 по компьютерной графике
Дата конвертации07.09.2012
Размер70.17 Kb.
ТипЛабораторная работа
1. /Comp_gr/LAB_1/LAB1_CH.DOC
2. /Comp_gr/LAB_2/PROG2K.DOC
3. /Comp_gr/LAB_2/ПСЕВДО.DOC
4. /Comp_gr/LAB_2/Семантика.doc
5. /Comp_gr/LAB_2/титул.doc
6. /Comp_gr/LAB_3/LAB3_СН.DOC
7. /Comp_gr/LAB_4/LAB4.DOC
8. /Comp_gr/LAB_4/TITUL.DOC
9. /Comp_gr/LAB_4/Результат1.doc
10. /Comp_gr/LAB_4/Результат2.doc
11. /Comp_gr/LAB_5/LAB5_CH.DOC
12. /Comp_gr/LAB_8/LABA8.DOC
Лабораторная работа №1 по предмету Компьютерная графика
Program Lab2; { Программа построения растра 32x32 }
{активация гр режима}
Семантика базы переменных
Технический университет Лабораторная работа №2 по компьютерной графике тема: Построение растра
Лабораторная работа №3 по компьютерной графике
Постановка задачи
Лабораторная работа №4 по компьютерной графике
Шаг | Координаты (X,Y) | Расчетн.(X,Y)
Шаг | Координаты (X,Y) | Расч(X,Y)
Лабораторная работа №5 по компьютерной графике
Лабораторная работа №8

Московский институт радиотехники электроники и автоматики

(технический университет)


Лабораторная работа № 3

по компьютерной графике




ТЕМА: Алгоритмы машинной графики




Работу выполнил студент

группы ----------------

Работу приняла Криницкая Е.В.


Москва

2001

Постановка задачи




1.На стандартном растре проверить работу алгоритма построения прямых методом цифрового дифференциального анализатора и обобщенным методом Брезенхейма.

2. На пяти прямых различной направленности (также горизонтальная, вертикальная и линия под углом 45 градусов) произвести анализ алгоритма

3. Данные по анализу построения линии должны быть сведены в таблицу:


gif" name="object1" align=bottom width=542 height=92>


Алгоритм реализуемого метода



Алгоритм рисования линии методом цифрового дифференциального анализатора


База данных






Начало

if X2-X1>0 then t1=x2-x1

else t1=x1-x2

if y2-y1>0 then t2=y2-y1

else t2=y1-y2

if t1>=t2 then dlina=t1

else dlina=t2

dx=(x2-x1) / dlina

dy=(y2-y1) / dlina

if X2-X1>0 then t1=1

if X2-X1<0 then t1=-1

if X2-X1=0 then t1=0

if X2-X1>0 then t2=1

if X2-X1<0 then t2=-1

if X2-X1=0 then t2=0

x=x1+0.5*t1;

y=y1+0.5*t2;

i=1

while (i<=dlina)

Вывести пиксел с координатами (x,y) и цветом Сolor

x=x+dx

y=y+dy

i=i+1

Конец.


Алгоритм рисования линии обобщенным методом Брезенхейма


База данных




Начало

x=x1

y=y1

if X2-X1>0 then dx= x2-x1

else dx= x1-x2

if Y2-Y1>0 then dy= Y2-Y1

else dx= Y1-Y2

if X2-X1>0 then S1=1

if X2-X1<0 then S1=-1

if X2-X1=0 then S1=0

if Y2-Y1>0 then S2=1

if Y2-Y1<0 then S2=-1

if Y2-Y1=0 then S2=0

if dy>dx then

time=dx

dx=dy

dy=time

Change=true

else change=false

e=2*dy-dx

for i:=1 to dx do

Вывести пиксел с координатами (x,y) и цветом Сolor

while e>=0 do

if change = true then x=x+s1

else y=y+s2

e:=e-2*dx

Вывести пиксел с координатами (x,y) и цветом Сolor

if change then y:=y+s2

else x:=x+s1;

e:=e+2*dy;

Вывести пиксел с координатами (x,y) и цветом Сolor

Конец.


Программа на TP.

program lab3;

uses crt,graph,dos;

type res=record

n : word;

x,y : integer;

xr,yr: real;

end;

var gr,md,er:integer;

fail:string[7];

f:text;

i,j,k,dlina:integer;

s1:string[32];

s2:string[32];

s3:string[32];

s4:string[32];

x1,y1,x2,y2:integer;

y,x:real;

dx,dy:real;

ar:array[1..60] of res;

function sign(x:real):real;

begin

if x<0 then sign:=-1;

if x>0 then sign:=1;

if x=0 then sign:=0;

end;

begin

ClrScr;

writeln('Введите имя файла куда будет производиться запись результатов:'); readln(fail);

assign(f,fail);присваивает имя внешнего файла файловой переменной

if ioresult <> 0 then

begin

writeln('Файла с таким именем не существует.');halt;

end;

rewrite(f);создает и открывает файл

активация гр. режима

er:=graphresult;

gr:=9;

md:=2;

initgraph(gr,md,'');

if er <> grok then

begin

writeln(grapherrormsg(er));

halt;

end;

Запись данных по анализу линий:горизонтальной,вертикальной,под углом 45 градусов и пяти произвольных

for k:=1 to 8 do

begin

case k of

1:begin

x1:=getmaxx div 2; y1:=getmaxy div 2;

x2:=getmaxx div 2+10; y2:=getmaxy div 2;

end;

2:begin

x1:=getmaxx div 2; y1:=getmaxy div 2;

x2:=getmaxx div 2; y2:=getmaxy div 2+10;

end;

3:begin

x1:=getmaxx div 2; y1:=getmaxy div 2;

x2:=getmaxx div 2+10; y2:=getmaxy div 2+10;

end;

else

begin

x1:=(getmaxx div 2)+random(20); y1:=(getmaxy div 2)+random(20); x2:=(getmaxx div 2)+random(20); y2:=(getmaxy div 2)+random(20);

end;

end;

j:=0;

if abs(x2-x1) >= abs(y2-y1) then dlina:=abs(x2-x1)

else dlina:=abs(y2-y1);

dx:=(x2-x1)/dlina;

dy:=(y2-y1)/dlina;

x:=x1+0.5*sign(dx);

y:=y1+0.5*sign(dy);

i:=1;

while (i<=dlina) do

begin

putpixel(round(x),round(y),15);

j:=j+1;

ar[j].n:=j;

ar[j].x:=round(x);

ar[j].y:=round(y);

ar[j].xr:=x;

ar[j].yr:=y;

x:=x+dx;

y:=y+dy;

i:=i+1;

end;

write(f,' Линия с координатами (');

str(x1,fail);

str(y1,s1);

str(x2,s2);

str(y2,s3);

write(f,fail+','+s1+','+s2+','+s3);

writeln(f,') ');

writeln(f,' N | Координаты (X,Y) | (Xрасчет,Yрасчет) ');

for i:=1 to j do

begin

str(ar[i].n:2,fail);

str(ar[i].x,s1);

str(ar[i].y,s2);

str(ar[i].Xr:3:3,s3);

str(ar[i].Yr:3:3,s4);

writeln(f,fail+' | ('+s1+','+s2+') | ('+S3+','+S4+')');

end;

writeln(f,'');

end;

close(f);

readkey;

closegraph;

end.


Линия с координатами (319,239,329,239)

N | Координаты (X,Y) | (Xрасчет,Yрасчет)

1 | (320,239) | (319.500,239.000)

2 | (321,239) | (320.500,239.000)

3 | (322,239) | (321.500,239.000)

4 | (323,239) | (322.500,239.000)

5 | (324,239) | (323.500,239.000)

6 | (325,239) | (324.500,239.000)

7 | (326,239) | (325.500,239.000)

8 | (327,239) | (326.500,239.000)

9 | (328,239) | (327.500,239.000)

10 | (329,239) | (328.500,239.000)

Линия с координатами (319,239,319,249)

N | Координаты (X,Y) | (Xрасчет,Yрасчет)

1 | (319,240) | (319.000,239.500)

2 | (319,241) | (319.000,240.500)

3 | (319,242) | (319.000,241.500)

4 | (319,243) | (319.000,242.500)

5 | (319,244) | (319.000,243.500)

6 | (319,245) | (319.000,244.500)

7 | (319,246) | (319.000,245.500)

8 | (319,247) | (319.000,246.500)

9 | (319,248) | (319.000,247.500)

10 | (319,249) | (319.000,248.500)

Линия с координатами (319,239,329,249)

N | Координаты (X,Y) | (Xрасчет,Yрасчет)

1 | (320,240) | (319.500,239.500)

2 | (321,241) | (320.500,240.500)

3 | (322,242) | (321.500,241.500)

4 | (323,243) | (322.500,242.500)

5 | (324,244) | (323.500,243.500)

6 | (325,245) | (324.500,244.500)

7 | (326,246) | (325.500,245.500)

8 | (327,247) | (326.500,246.500)

9 | (328,248) | (327.500,247.500)

10 | (329,249) | (328.500,248.500)

Линия с координатами (319,239,336,243)

N | Координаты (X,Y) | (Xрасчет,Yрасчет)

1 | (320,240) | (319.500,239.500)

2 | (321,240) | (320.500,239.735)

3 | (322,240) | (321.500,239.971)

4 | (323,240) | (322.500,240.206)

5 | (324,240) | (323.500,240.441)

6 | (325,241) | (324.500,240.676)

7 | (326,241) | (325.500,240.912)

8 | (327,241) | (326.500,241.147)

9 | (328,241) | (327.500,241.382)

10 | (329,242) | (328.500,241.618)

11 | (330,242) | (329.500,241.853)

12 | (331,242) | (330.500,242.088)

13 | (332,242) | (331.500,242.324)

14 | (333,243) | (332.500,242.559)

15 | (334,243) | (333.500,242.794)

16 | (335,243) | (334.500,243.029)

17 | (336,243) | (335.500,243.265)


Линия с координатами (324,252,325,242)

N | Координаты (X,Y) | (Xрасчет,Yрасчет)

1 | (325,252) | (324.500,251.500)

2 | (325,251) | (324.600,250.500)

3 | (325,250) | (324.700,249.500)

4 | (325,249) | (324.800,248.500)

5 | (325,248) | (324.900,247.500)

6 | (325,247) | (325.000,246.500)

7 | (325,246) | (325.100,245.500)

8 | (325,245) | (325.200,244.500)

9 | (325,244) | (325.300,243.500)

10 | (325,243) | (325.400,242.500)

Линия с координатами (326,247,320,248)

N | Координаты (X,Y) | (Xрасчет,Yрасчет)

1 | (326,248) | (325.500,247.500)

2 | (325,248) | (324.500,247.667)

3 | (324,248) | (323.500,247.833)

4 | (323,248) | (322.500,248.000)

5 | (322,248) | (321.500,248.167)

6 | (321,248) | (320.500,248.333)


Линия с координатами (320,255,320,244)

N | Координаты (X,Y) | (Xрасчет,Yрасчет)

1 | (320,255) | (320.000,254.500)

2 | (320,254) | (320.000,253.500)

3 | (320,253) | (320.000,252.500)

4 | (320,252) | (320.000,251.500)

5 | (320,251) | (320.000,250.500)

6 | (320,250) | (320.000,249.500)

7 | (320,249) | (320.000,248.500)

8 | (320,248) | (320.000,247.500)

9 | (320,247) | (320.000,246.500)

10 | (320,246) | (320.000,245.500)

11 | (320,245) | (320.000,244.500)

Линия с координатами (337,246,334,245)

N | Координаты (X,Y) | (Xрасчет,Yрасчет)

1 | (337,246) | (336.500,245.500)

2 | (336,245) | (335.500,245.167)

3 | (335,245) | (334.500,244.833)




Похожие:

Лабораторная работа №3 по компьютерной графике iconДокументы
1. /OOP/Лабораторная работа ь00-Введение.doc
2. /OOP/Лабораторная...

Лабораторная работа №3 по компьютерной графике iconЛабораторная работа: создание мини-презентации «Памятники Кремля»
Лабораторная работа проводится в компьютерном классе, с подключением к сети Internet
Лабораторная работа №3 по компьютерной графике iconДокументы
1. /Lab1/Лабораторная работа 1.doc
2. /Lab2/Лабораторная...

Лабораторная работа №3 по компьютерной графике iconИ я забуду Покажи мне и я запомню, Дай мне действовать самому и я научусь. Китайская мудрость Тема: Лабораторная работа
Тема: «Лабораторная работа «Измерение работы и мощности тока в электрической лампочке»
Лабораторная работа №3 по компьютерной графике iconДокументы
1. /Nash/lab1/Лабораторная работа ь1.doc
2. /Nash/lab10/Лабораторная...

Лабораторная работа №3 по компьютерной графике iconЛабораторная работа №2 «Система безопасности Windows xp»
Лабораторная работа №2 «Система безопасности Windows xp» Цель работы: Изучить систему безопасности Windows xp
Лабораторная работа №3 по компьютерной графике iconЛабораторная работа «Работа в Windows c помощью основного меню. Использование технологии ole»
Запишите размер папки, выраженный в Мб (мегабайтах) в текстовый редактор блокнот
Лабораторная работа №3 по компьютерной графике iconЛабораторная работа «Работа с текстовыми фрагментами без помощи мыши»
Скопируйте последнее слово получившегося текста и вставьте его в начало текста один раз
Лабораторная работа №3 по компьютерной графике iconДокументы
1. /Базовые задачи на обработку массива.doc
2. /ЗадачиНаЛиниВетвление.doc
Лабораторная работа №3 по компьютерной графике iconДокументы
1. /laba/Лабораторная работа ь1.doc
2. /laba/Лабораторная...

Лабораторная работа №3 по компьютерной графике iconДокументы
1. /механизация/~$б работа ь4.doc
2. /механизация/~$бораторная...

Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов