home *** CD-ROM | disk | FTP | other *** search
- {///////////////////////////////////////////////////////////////////////////}
- { Ca y est... je me suis décidé à mettre le source de VECTMORPH dans le
- domaine public! A mon point de vue, c'est un petit programme assez peu
- important, mais c'est a priori c'est susceptible d'intéresser quelques uns
- d'entre vous. Ceux-ci sont évidemment curieux de savoir comment "ça"
- marche! Voilà!, sachez donc tirer profit de ce petit cadeau et évitez de
- faire partie du club très large des LAMERS en "pompant" bêtement.
-
- Pour de plus amples informations, d'éventuelles suggestions, ou tout
- simplement pour le fun, vous pouvez m'écrire à l'adresse suivante:
-
- Patrick Ruelle
- 43, av. de Grande Bretagne
- 98000 Monaco
- Principauté de Monaco
-
- Evidemment je n'ai pas pris la décision de diffuser ce source dans le
- but de demander de l'argent, mais il va de soit que toutes sortes de dons
- sont acceptés (carte postale, matos, argent, spécialités locales, docs,
- etc...). N'oubliez pas non plus que cette diffusion ne m'enlève nullement
- mes droits d'auteur de cette mmm... de démo; ce petit package peut être
- diffusé librement à condition de rester sous sa forme initiale:
-
- VECTMORF.EXE 01/08/94 5344 L'exécutable...
- VECTMORF.PAS 01/08/94 5406 Le source principal de la démo
- VECTK .PAS 01/08/94 5531 Le source du mini noyau pour la démo
- ------
- TOTAL 16281
-
- La version actuelle est remaniée exprès pour la diffusion de ce package,
- mais en fait ce programme date de fin 1993...
-
- Patrick Ruelle (Monac) / GRYPHAEA }
- {///////////////////////////////////////////////////////////////////////////}
- PROGRAM VectMorph;
-
- USES VECTK;
-
- CONST
- figure:ARRAY[1..6,1..84] OF INTEGER=(
- (150,27,169,27,150,27,150,42,169,27,169,42,132,43,187,43,
- 132,43,101,55,187,43,218,55,101,55,80,76,218,55,239,76,
- 96,60,223,60,85,71,234,71,80,76,67,103,239,76,252,103,
- 67,103,80,130,252,103,239,130,80,130,101,151,239,130,218,151,
- 85,135,234,135,96,146,223,146,101,151,132,163,218,151,187,163,
- 132,163,187,163),
- (159,23,143,39,160,23,176,39,143,39,154,39,176,39,165,39,
- 154,39,132,61,165,39,187,61,132,61,151,61,187,61,168,61,
- 151,61,117,95,168,61,202,95,117,95,125,95,202,95,194,95,
- 125,95,84,136,194,95,235,136,84,136,235,136,150,136,150,157,
- 169,136,169,157,131,157,188,157,131,157,119,169,188,157,200,169,
- 119,169,200,169),
- (159,20,150,37,159,20,168,37,150,37,159,46,168,37,159,46,
- 159,38,159,50,150,50,169,50,150,50,150,150,169,50,169,150,
- 107,150,212,150,212,150,216,150,216,150,221,145,221,145,232,145,
- 232,145,237,150,114,157,216,157,237,150,237,157,107,150,126,169,
- 212,150,193,169,216,157,221,162,237,157,232,162,126,169,193,169,
- 221,162,232,162),
- (187,23,212,23,187,23,191,35,212,23,208,35,191,35,191,63,
- 208,35,208,63,191,48,208,48,191,63,176,78,208,63,223,78,
- 176,78,168,94,223,78,231,94,91,92,129,92,91,92,110,131,
- 129,92,110,131,168,94,168,169,231,94,231,169,94,98,126,98,
- 168,112,231,112,110,131,110,169,168,151,231,151,92,169,128,169,
- 168,169,231,169),
- (100,30,219,30,100,30,100,131,219,30,219,131,114,43,205,43,
- 114,43,114,118,205,43,205,118,114,118,205,118,193,125,205,125,
- 60,131,259,131,60,131,60,169,259,131,259,169,195,136,251,136,
- 195,136,195,147,251,136,251,147,199,141,247,141,195,147,251,147,
- 65,158,72,158,65,158,65,164,72,158,72,164,65,164,72,164,
- 60,169,259,169),
- (150,27,169,27,150,27,150,42,169,27,169,42,132,43,187,43,
- 132,43,101,55,187,43,218,55,101,55,80,76,218,55,239,76,
- 96,60,223,60,85,71,234,71,80,76,67,103,239,76,252,103,
- 67,103,80,130,252,103,239,130,80,130,101,151,239,130,218,151,
- 85,135,234,135,96,146,223,146,101,151,132,163,218,151,187,163,
- 132,163,187,163));
-
- VAR
- MemLig:ARRAY[0..20,1..4] OF WORD;
-
- PROCEDURE Animation;
- VAR
- num_fig,I,J:BYTE;
- x1,y1,x2,y2:INTEGER;
- BEGIN
- YMode360x480;
- YRemplitEcran(0);
- num_fig:=0;
- VideTamponClavier;
- REPEAT
- Inc(num_fig);
- IF num_fig>5 THEN num_fig:=1;
- FOR I:=0 TO 99 DO
- BEGIN
- FOR J:=0 TO 20 DO
- BEGIN
- x1:=20+Round(figure[num_fig,j*4+1]+I*(figure[num_fig+1,j*4+1]-figure[num_fig,j*4+1])/99);
- y1:=40+2*Round(figure[num_fig,j*4+2]+I*(figure[num_fig+1,j*4+2]-figure[num_fig,j*4+2])/99);
- x2:=20+Round(figure[num_fig,j*4+3]+I*(figure[num_fig+1,j*4+3]-figure[num_fig,j*4+3])/99);
- y2:=40+2*Round(figure[num_fig,j*4+4]+I*(figure[num_fig+1,j*4+4]-figure[num_fig,j*4+4])/99);
- MemLig[J,1]:=x1; MemLig[J,2]:=y1;
- MemLig[J,3]:=x2; MemLig[J,4]:=y2;
- YLigne(x1,y1,x2,y2,15);
- END;
- YAttenteSynchro;
- IF ((I=99) OR (I=0)) THEN PauseSynchro(140);
- IF I<>99 THEN
- FOR J:=0 TO 20 DO
- YLigne(MemLig[J,1],MemLig[J,2],MemLig[J,3],MemLig[J,4],0);
- END;
- UNTIL ToucheAppuyee;
- YModeTexte;
- END;
-
- BEGIN
- Animation;
- END.