Advertisement
tolikpunkoff

videogrf.pas

Oct 17th, 2018
723
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 5.84 KB | None | 0 0
  1. program grafik; {$N+}
  2. uses Graph,crt;
  3. var
  4. i,j,k,za,c1:longInt;
  5.  Q,W,e:INTEGER;
  6. a:array[1..3,1..3] of extended;
  7. fil:text;
  8. Z,X,C,B,D,Y,dis:EXTENDED;
  9. name:string[120];
  10. t:char;
  11.  
  12. begin
  13.  
  14. writeln('инициализация графики');
  15. repeat
  16. writeln('*');
  17. Q:=detect;
  18. InitGraph ( Q, W ,'C:\BP\BGI');{'F:\APPS\TP6\BGI' );}
  19. e:=graphresult;
  20. write(e:5);
  21. until (e=0) ;
  22.             for c1:=14 to 20 do begin
  23.            settextstyle(0,0,1);
  24.            str(c1,name);
  25.            name:='data'+name+'.txt';
  26. writeln('увязка файла');
  27. repeat {$I-}
  28. write('*');
  29. assign (fil,name);
  30. {$I+}
  31. until IOResult=0 ;
  32.  
  33. writeln('открытие файла');
  34. repeat {$I-}
  35. write('*');
  36.  
  37. reset(fil);
  38. {$I+}
  39. until IOResult=0 ;
  40.  
  41. writeln('чтение файла');
  42. for i:=1 to 3 do  begin
  43.     for j:=1 to 3 do begin
  44.         writeln('*');
  45.         read(fil,a[i,j]);
  46.     end;
  47. end;
  48.  
  49.  
  50.  
  51. setlinestyle(4,34952,1);
  52. Rectangle(  0,  0,201,201);
  53. Rectangle(210,  0,411,201);
  54. Rectangle(420,  0,621,201);
  55. Rectangle(  0,250,201,451);
  56. Rectangle(210,250,411,451);
  57. Rectangle(420,250,621,451);
  58.     outtextxy(  0,202,'< xy >  -100<Z<+3100');
  59.     outtextxy(  0,452,'< xy >  +100>Z>-3100');
  60.     outtextxy(210,202,'< xz > -3100<y<+3100');
  61.     outtextxy(210,452,'< xz > +3100>y>-3100');
  62.     outtextxy(420,202,'< zy > -3100<x<+3100');
  63.     outtextxy(420,452,'< zy > +3100>x>-3100');
  64.     line(100,  0,100,200);
  65.     line(310,  0,310,200);
  66.     line(520,  0,520,200);
  67.     line(100,250,100,450);
  68.     line(310,250,310,450);
  69.     line(520,250,520,450);
  70.     line(  0,100,200,100);
  71.     line(210,100,410,100);
  72.     line(420,100,620,100);
  73.     line(  0,350,200,350);
  74.     line(210,350,410,350);
  75.     line(420,350,620,350);
  76.  
  77. {окно 4.....................................................................}
  78. for i:=-99 to 100 do begin
  79.     x:=i;
  80.     b:=a[1,1]+a[1,2]*x+a[1,3]*X*X; {C}
  81.     C:=a[2,1]+a[2,2]*X+a[2,3]*x*x; {B}
  82.     D:=a[3,1]+a[3,2]*X+a[3,3]*X*X; {A}
  83.  
  84.     for j:=-100 to 99 do begin
  85.     Y:=J;
  86.     z:=b+C*Y+D*Y*Y;
  87.  
  88.                    for k:=0 to 14 do begin
  89.                    za:=-k*(200);
  90.                    if ((za-100<=z)and(za+100>z)) then PUTPIXEL(TRUNC(X+100),TRUNC(Y*(-1)+350),k+1);
  91.                    end;
  92.  
  93.     end;
  94.     PUTPIXEL(TRUNC(X+100),460,2);
  95.     end;
  96. {окно 1.....................................................................}
  97. for i:=-99 to 100 do begin
  98.     x:=i;
  99.     b:=a[1,1]+a[1,2]*x+a[1,3]*X*X; {C}
  100.     C:=a[2,1]+a[2,2]*X+a[2,3]*x*x; {B}
  101.     D:=a[3,1]+a[3,2]*X+a[3,3]*X*X; {A}
  102.  
  103.     for j:=-100 to 99 do begin
  104.     Y:=J;
  105.     z:=b+C*Y+D*Y*Y;
  106.  
  107.                    for k:=0 to 14 do begin
  108.                    za:=k*200;
  109.                    if ((za-100<=z)and(za+100>z)) then PUTPIXEL(TRUNC(X+100),TRUNC(Y*(-1)+100),k+1);
  110.                    end;
  111.  
  112.     end;
  113.     PUTPIXEL(TRUNC(X+100),210,2);
  114.     end;
  115. {окно второе................................................................}
  116. for i:=-99 to 100 do begin
  117.     x:=i;
  118.     b:=a[1,1]+a[1,2]*x+a[1,3]*X*X; {C}
  119.     C:=a[2,1]+a[2,2]*X+a[2,3]*x*x; {B}
  120.     D:=a[3,1]+a[3,2]*X+a[3,3]*X*X; {A}
  121.  
  122.     for j:=-3100 to 3100 do begin
  123.     Y:=J;
  124.     z:=b+C*Y+D*Y*Y;
  125.  
  126.                    for k:=0 to 14 do begin
  127.                    za:=k*(200);
  128.                    if ((za-100<=Y)and(za+100>Y)and(Z>=-100)and(Z<=99)) then PUTPIXEL(TRUNC(X+310),TRUNC(z*(-1)+100),k+1);
  129.                    end;
  130.  
  131.     end;
  132.     PUTPIXEL(TRUNC(X+310),210,2);
  133.     end;
  134. {окно 5.....................................................................}
  135. for i:=-99 to 100 do begin
  136.     x:=i;
  137.     b:=a[1,1]+a[1,2]*x+a[1,3]*X*X; {C}
  138.     C:=a[2,1]+a[2,2]*X+a[2,3]*x*x; {B}
  139.     D:=a[3,1]+a[3,2]*X+a[3,3]*X*X; {A}
  140.  
  141.     for j:=-3100 to 3100 do begin
  142.     Y:=J;
  143.     z:=b+C*Y+D*Y*Y;
  144.  
  145.                    for k:=0 to 14 do begin
  146.                    za:=-k*(200);
  147.                    if ((za-100<=Y)and(za+100>Y)and(Z>=-100)and(Z<=99)) then PUTPIXEL(TRUNC(X+310),TRUNC(z*(-1)+350),k+1);
  148.                    end;
  149.  
  150.     end;
  151.     PUTPIXEL(TRUNC(X+310),460,2);
  152.     end;
  153. {окно 3.....................................................................}
  154.     for i:=-3100 to 3100 do begin
  155.     x:=i;
  156.     b:=a[1,1]+a[1,2]*x+a[1,3]*X*X; {C}
  157.     C:=a[2,1]+a[2,2]*X+a[2,3]*x*x; {B}
  158.     D:=a[3,1]+a[3,2]*X+a[3,3]*X*X; {A}
  159.  
  160.     for j:=-100 to 99 do begin
  161.     Y:=J;
  162.     z:=b+C*Y+D*Y*Y;
  163.  
  164.                    for k:=0 to 14 do begin
  165.                    za:=k*(200);
  166.                    if ((za-100<=X)and(za+100>X)and(Z>=-99)and(Z<=100)) then PUTPIXEL(TRUNC(z+520),TRUNC(y*(-1)+100),k+1);
  167.                    end;
  168.     end;
  169.     PUTPIXEL(TRUNC((X+3100)/31+420),210,2);
  170.     end;
  171. {окно 6.....................................................................}
  172.     for i:=-3100 to 3100 do begin
  173.     x:=i;
  174.     b:=a[1,1]+a[1,2]*x+a[1,3]*X*X; {C}
  175.     C:=a[2,1]+a[2,2]*X+a[2,3]*x*x; {B}
  176.     D:=a[3,1]+a[3,2]*X+a[3,3]*X*X; {A}
  177.     for j:=-100 to 99 do begin
  178.     Y:=J;
  179.     z:=b+C*Y+D*Y*Y;
  180.                    for k:=0 to 14 do begin
  181.                    za:=-k*(200);
  182.                    if ((za-100<=X)and(za+100>X)and(Z>=-99)and(Z<=100)) then PUTPIXEL(TRUNC(z+520),TRUNC(y*(-1)+350),k+1);
  183.                    end;
  184.     end;
  185.     PUTPIXEL(TRUNC((X+3100)/31+420),460,2);
  186.     end;
  187.     t:=readkey;
  188.  
  189.     cleardevice;
  190.     Rectangle(  0,  0,  1,402);
  191.     settextstyle(4,0,2);
  192.     outtextxy(  0,450,'< xyz > '+name);
  193.     for i:=-1990 to 2000 do begin
  194.     x:=i*0.1;
  195.     b:=a[1,1]+a[1,2]*x+a[1,3]*X*X; {C}
  196.     C:=a[2,1]+a[2,2]*X+a[2,3]*x*x; {B}
  197.     D:=a[3,1]+a[3,2]*X+a[3,3]*X*X; {A}
  198.     for j:=-2000 to 1990 do begin
  199.     Y:=J*0.1;
  200.     z:=b+C*Y+D*Y*Y;
  201.                    for k:=-10 to 10 do begin
  202.                    za:=k*8;
  203.                    if ((za-4<=z)and(za+4>z)) then PUTPIXEL(TRUNC(X+340-z),TRUNC(Y*(-1)+200+z),k+1);
  204.                    end;
  205.     end;
  206.     PUTPIXEL(1,TRUNC(X+201),15);
  207.     end;
  208.  
  209.     t:=readkey;
  210.     cleardevice;
  211.            end;
  212. closegraph ;
  213. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement