DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Копм’ютерна графіка

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра захисту інформації

Інформація про роботу

Рік:
2011
Тип роботи:
Розрахункова робота
Предмет:
Комп'ютерна графіка
Група:
ІБ – 44

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра «Захисту інформації»  Розрахункова робота З курсу: “Копм’ютерна графіка” Варіант: 18 № варіанту Функція f(x) Діапазон зміни аргументу  18 z=arcctg(x) [-1000; 1000]   № варіанту Структура зображення Пояснення   18   Хрест безперервно котиться по горизонтальній. При досягненні стінок напрямок кочення змінюється на протилежний.   Код програми: Program rozrah; Uses Graph, CRT; var xmax, ymax, px0, py0: integer; kx, ky, x0, y0:real; alpha1,n,xn,yn,kr,xh,yh,xc,yc,r,alpha,startx,endx,xs,ys:extended; const delta:integer = 50; ws_delta:integer = 10; a:integer = 150; b:integer = 90; d:integer = 25; cur_x:integer = 9; cur_y:integer = 5; cur_p:integer = 8; np_x:integer = 10; np_y:integer = 7; c_xa:integer = -1000; c_xb:integer = 1000; Procedure ramka; Begin line((GetMaxX div 2)+10, GetMaxY-1, (GetMaxX div 2)+172, GetMaxY-1); line((GetMaxX div 2)+10, GetMaxY-1, (GetMaxX div 2)+10, GetMaxY-20); line((GetMaxX div 2)+172, GetMaxY-1, (GetMaxX div 2)+172, GetMaxY-20); end; Procedure hrest(xh,yh:integer; alpha:extended); var r,rm,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12:extended; alpha1,alpha2,alpha3,alpha4,alpha5,alpha6,alpha7,alpha8,alpha9,alpha10,alpha11,alpha12:extended; Begin setlinestyle(0,1,1); setcolor(15); ramka; alpha:=alpha*pi/180; r:=16; rm:=8; alpha1:=(alpha+22)*pi/180; alpha2:=(alpha+45)*pi/180; alpha3:=(alpha+67)*pi/180; alpha4:=(alpha+112)*pi/180; alpha5:=(alpha+135)*pi/180; alpha6:=(alpha+157)*pi/180; alpha7:=(alpha+202)*pi/180; alpha8:=(alpha+225)*pi/180; alpha9:=(alpha+247)*pi/180; alpha10:=(alpha+292)*pi/180; alpha11:=(alpha+315)*pi/180; alpha12:=(alpha+337)*pi/180; x1:=r*cos(alpha1)+xh; y1:=r*sin(alpha1)+yh; x2:=rm*cos(alpha2)+xh; y2:=rm*sin(alpha2)+yh; x3:=r*cos(alpha3)+xh; y3:=r*sin(alpha3)+yh; x4:=r*cos(alpha4)+xh; y4:=r*sin(alpha4)+yh; x5:=rm*cos(alpha5)+xh; y5:=rm*sin(alpha5)+yh; x6:=r*cos(alpha6)+xh; y6:=r*sin(alpha6)+yh; x7:=r*cos(alpha7)+xh; y7:=r*sin(alpha7)+yh; x8:=rm*cos(alpha8)+xh; y8:=rm*sin(alpha8)+yh; x9:=r*cos(alpha9)+xh; y9:=r*sin(alpha9)+yh; x10:=r*cos(alpha10)+xh; y10:=r*sin(alpha10)+yh; x11:=rm*cos(alpha11)+xh; y11:=rm*sin(alpha11)+yh; x12:=r*cos(alpha12)+xh; y12:=r*sin(alpha12)+yh; line(trunc(x1),trunc(y1),trunc(x2),trunc(y2)); line(trunc(x2),trunc(y2),trunc(x3),trunc(y3)); line(trunc(x3),trunc(y3),trunc(x4),trunc(y4)); line(trunc(x4),trunc(y4),trunc(x5),trunc(y5)); line(trunc(x5),trunc(y5),trunc(x6),trunc(y6)); line(trunc(x6),trunc(y6),trunc(x7),trunc(y7)); line(trunc(x7),trunc(y7),trunc(x8),trunc(y8)); line(trunc(x8),trunc(y8),trunc(x9),trunc(y9)); line(trunc(x9),trunc(y9),trunc(x10),trunc(y10); line(trunc(x10),trunc(y10),trunc(x11),trunc(y11)); line(trunc(x11),trunc(y11),trunc(x12),trunc(y12)); line(trunc(x12),trunc(y12),trunc(x1),trunc(y1)); end; procedure InitGrp; var r,d:integer; begin d:=detect; InitGraph(d, r, 'bgi'); r:=GraphResult; if r<>grok then begin Writeln (GraphErrorMsg(r)); readln; Halt(1); end; setfillstyle(1,15); end; function GetY(x:real) : real; begin GetY:=arctan(x); end; procedure GetMinMaxY(var min:real; var max:real; ax:real; bx:real); var h,y,x:real; begin h:=(bx-ax)/(GetMaxX-2*delta); min:=1e23; max:=-1e23; x:=ax; while (x<=bx) do begin y:=GetY(x); if(y>max) then max:=y; if(y<min) then min:=y; x:=x+h; end; end; function ToX(x:real):integer; var ret:real; begin ret:=round(GetMaxX/2) + (x)*kx; ToX:=round(ret); end; function ToY(y:real):integer; var ret:real; begin ret:=py0 + (y0-y)*ky; ToY:=round(ret); end; procedure PaintXY(ax:real; bx:real); var fmin, fmax, gx_min, gx_max, gy_min, gy_max, t:real; x,y,i:integer; s:string[50]; begin gx_min:=ax; gx_max:=bx; if(bx<0) then begin gx_max:=0; end else if(ax>0) then gx_min:=0; GetMinMaxY(gy_min, gy_max, ax, bx); if(gy_max<0) then begin gy_max:=0; end else if(gy_min>0) then gy_min:=0; if((kx=0) or (ky=0)) then begin kx:=(GetMaxX-2*delta)/(gx_max-gx_min); ky:=(GetMaxY-2*delta)/(gy_max-gy_min); x0:=gx_min; y0:=gy_min; px0:=delta; py0:=GetMaxY-delta; end; SetColor(7); SetLineStyle(0,0,0); SetTextStyle(SansSerifFont,0,0); y:=ToY(0); Line(px0, y, GetMaxX-delta, y); MoveTo(GetMaxX-delta, y); LineRel(-cur_x,-cur_y); MoveRel(cur_x, cur_y); LineRel(-cur_x, cur_y); t:=(gx_max-gx_min)/np_x; for i:=1 to np_x-1 do begin x:=ToX(gx_min+t*i); MoveTo(x,round(y+cur_p/2)); LineRel(0,-cur_p); str(gx_min+t*i:0:0, s); OutTextXY(x-3, y+cur_p, s); end; OutTextXY(GetMaxX-delta, y+10, 'X'); x:=ToX(0); Line(x, py0, x, delta); MoveTo(x, delta); LineRel(cur_y,cur_x); MoveRel(-cur_y, -cur_x); LineRel(-cur_y, cur_x); t:=(gy_max-gy_min)/np_y; for i:=1 to np_y-1 do begin y:=ToY(gy_min+t*i); MoveTo(round(x-cur_p/2), y); LineRel(cur_p, 0); if(gy_max-gy_min>100) then begin str(gy_min+t*i:0, s); OutTextXY(round(x+cur_p/2), y-3, s); end else begin str(gy_min+t*i:3:1, s); OutTextXY(round(x+cur_p/2), y-3, s); end; end; OutTextXY(x+10, delta, 'Y'); end; procedure PaintGraph(ax:real; bx:real); var h,x:real; px,py,nx,ny:integer; const dXY:integer = 4; begin PaintXY(ax, bx); SetColor(5); SetLineStyle(3,0,3); h:=(bx-ax)/(GetMaxX-2*delta); x:=ax; px:=ToX(x); py:=ToY(GetY(x)); MoveTo(px,py); while (x<bx) do begin nx:=ToX(x); ny:=ToY(GetY(x)); if((abs(nx-px)>dXY) or (abs(ny-py)>dXY)) then begin LineTo(nx, ny); px:=nx; py:=ny; end; x:=x+h; end; end; begin InitGrp; xs:=GetMaxX div 2; ys:=(GetMaxY div 2)-80; alpha:=0; startx:=(GetMaxX div 2)+26; endx:=(GetMaxX div 2)+156; xc:=startx; yc:=GetMaxY-17; xh:=startx; yh:=yc; r:=16.0; n:=5; xn:=16; yn:=0; kr:=1; while (not keypressed) do begin ClearDevice; PaintGraph(c_xa, c_xb); hrest(trunc(xh),trunc(yh),alpha); if xh=endx then alpha1:=-80; if xh=startx then alpha1:=80; alpha:=alpha+alpha1; if xh=endx then n:=-1; if xh=startx then n:=1; xh:=xh+n; delay(2500); end; ReadLn; ReadLn; end. Блок-схема: Висновок: На даній лабораторній роботі я згадав навички роботи в графічному середовищі мови програмування Турбо Паскаль та здійснив вивід на екран заданого зображення.
Антиботан аватар за замовчуванням

21.12.2011 21:56

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!