home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Pascal / MAXONPASCAL3.DMS / in.adf / DEMOS-OS1.3 / SysProg / ImageDemo2.p < prev    next >
Encoding:
Text File  |  1994-07-23  |  2.2 KB  |  65 lines

  1. {MaxonPASCAL3-Anpassung / Test:  Falk Zühlsdorff (PackMAN)  1994 }
  2.  
  3.  
  4. PROGRAM ImageDemo2;
  5.  
  6. { By Michael Janich & Jens Gelhar               }
  7. {                                               }
  8. { Schönere Version von "Imagedemo.p":           }
  9. {                                               }
  10. { Das Bild wird gleich 800mal ausgegeben, wobei }
  11. { die Positionen aus überlagerten Sinus-        }
  12. { schwingungen berechnet werden.                }
  13.  
  14. USES INTUITION;
  15.  
  16. TYPE
  17.   Plane = Array[1..36] of Word;      { 3*12 = 36 }
  18.  
  19. VAR
  20.   Win: ^Window;
  21.   i: Integer;
  22.   x, y: Real;
  23.   Img: Image;
  24.   Dat: ^Plane;
  25.  
  26. BEGIN
  27.   Win:=Open_Window(120,50,320,150,1,0,$1007,'Image',Nil,100,50,640,200);
  28.   { Speicher für Bilddaten reservieren: }
  29.   Dat:=Ptr( Alloc_Mem(SizeOf(Plane), 2) );   { 2 = "MEMF_CHIP" }
  30.   { Bild initialisieren: }
  31.   Dat^:=Plane(%0001111111111111, %1111111111111111, %1111111111111000,
  32.               %0111000000000000, %0000000000000000, %0000000000001110,
  33.               %1110000111111100, %0011110001111000, %0000000111100111,
  34.               %1100000111100111, %0011110000111100, %0000001111000011,
  35.               %1100000111100111, %0000000000111100, %0000001111000011,
  36.               %1100000111111100, %0111110000111100, %0011111111000011,
  37.               %1100000111100111, %0011110000111100, %0111001111000011,
  38.               %1100000111100111, %0011110000111100, %0111001111000011,
  39.               %1100000111111100, %0111111001111110, %0011111111100011,
  40.               %1110000000000000, %0000000000000000, %0000000000000111,
  41.               %0111000000000000, %0000000000000000, %0000000000001110,
  42.               %0001111111111111, %1111111111111111, %1111111111111000);
  43.   { Image-Struktur }
  44.   Img:=Image(0,0,     { keine Verschiebung }
  45.              48,      { Breite }
  46.              12,      { Höhe }
  47.              1,       { nur eine Plane }
  48.              Dat,     { Bilddaten }
  49.              1,0,     { weißes Bild, schwarzer Hintergrund }
  50.              Nil);    { kein weiteres Image }
  51.  
  52.   For i:=0 To 800 Do  { 800mal Bild ausgeben }
  53.     BEGIN
  54.       x:= 120*sin(i/125.66);
  55.       y:=  50*sin(i/ 31.415)
  56.          - 10*sin(i/ 62.832);
  57.       DrawImage(Win^.RPort, ^Img, 136+trunc(x), 75+round(y));
  58.     END;
  59.  
  60.   Delay(5*50);
  61.   Close_Window(Win);
  62.   CloseLib(IntuitionBase);
  63. END.
  64.  
  65.