Au secours les pros,
j'ai un projet à rendre (graphisme avec Turbo Pascal ou Dev-Pascal) et là je fais du surplace ! Y a t-il une bonne volonté qui voudrait bien m'encadrer ?
Please !
Au secours les pros,
j'ai un projet à rendre (graphisme avec Turbo Pascal ou Dev-Pascal) et là je fais du surplace ! Y a t-il une bonne volonté qui voudrait bien m'encadrer ?
Please !
oui je veux bien te recadrer, les pros ici ne font pas là pour faire tes devoirs, si tu veux des conseils sur ton code, commence par le donner...sinon je peux envisager de faire tes devoirs contre facturation, mais je suis très cher
Ok le moins cher possible sera le mieux tant que je peux résoudre mon probléme.Pour faire 'marcher' un graphe (qui represente par exemple une voiture) je fais quoi?g essayé la fonction delay pour aprés redessiner mais ca ne marche pas
g le code suivant et j'aimerais faire marcher un cercle choisi au hasard jusqu'a un rectangle ou il n'y a pas de cercle
Bonjour !
Voici un exemple d'animation réalisée avec l'unité Graph (testé avec FreePascal). Le résultat n'est vraiment pas beau. Peut-on faire mieux avec l'unité Graph ? Je ne sais pas.
Cet exemple peut éventuellement te servir à essayer des choses mais, pour avoir un résultat plus satisfaisant, je crois qu'il faudra te tourner vers une autre unité (comme WinGraph par exemple).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 program Anim1; uses WinCrt, Graph; procedure Animation; var size: word; image: pointer; x1, y1, x2, y2: integer; begin x1:=0; y1:=0; x2:=100; y2:=100; size := ImageSize(x1, y1, x2, y2); GetMem(image, size); GetImage(x1, y1, x2, y2, image^); while (x1 <= GetMaxX-100) and not KeyPressed do begin PutImage(x1, y1, image^, XorPut); Inc(x1, 5); PutImage(x1, y1, image^, XorPut); end; end; var pilote, mode: integer; begin DetectGraph(pilote, mode); InitGraph(pilote, mode, ''); SetColor(Red); Circle(50, 50, 40); Animation; ReadKey; CloseGraph; end.
Mon site personnel consacré à MSEide+MSEgui : msegui.net
Avec cette procédure animation, je parviens juste à faire bouger une partie de mon premier rectangle. Et je n'ai pas bien compris comment la modifier pour faire bouger les cercles. Comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 program graphe; uses Graph,crt; procedure animation; var size: word; image: pointer; x1, y1, x2, y2: integer; begin x1:=0; y1:=0; x2:=100; y2:=100; size := ImageSize(x1, y1, x2, y2); GetMem(image, size); GetImage(x1, y1, x2, y2, image^); while (x1 <= GetMaxX-100) and not KeyPressed do begin PutImage(x1, y1, image^, XorPut); Inc(x1, 5); PutImage(x1, y1, image^, XorPut); end; end; var pilote:smallint; mode:smallint; q,p,j,i,n:integer; begin pilote:= detect; n:=50; p:=50; q:=200; initGraph (pilote,mode,'C:\Documents\graphisme\bgi'); for i:=1 to 10 do begin circle(n,650,15); n:=n+40; end; for j:=1 to 3 do begin rectangle(p,50,q,150); p:=p+250; q:=q+250; end; animation; readln; closeGraph; end.
Les carrés et les cercles sont dessinés sur l'écran. Ensuite la procédure Animation est appelée. Elle copie un rectangle dont les coordonnées sont données en début de procédure :
Ensuite la procédure déplace l'image copiée, en l'effaçant et en la redessinant à partir d'un nouveau point.
Code : Sélectionner tout - Visualiser dans une fenêtre à part x1:=0; y1:=0; x2:=100; y2:=100;
En l'occurrence, le nouveau point est à droite (5 pixels) du point précédent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Inc(x1, 5);
Maintenant en fonction de ce que tu veux faire, il faut déclarer autant d'images que tu veux, y copier les dessins et trouver la formule de leur déplacement.
Mon site personnel consacré à MSEide+MSEgui : msegui.net
Ok merci j'essai de modifier la procedure animation pour faire bouger les cercles.Voyons si je vais y parvenir.
enfin j'y arrive c'est bon c'est fait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 uses Graph,crt; var pilote:smallint; mode:smallint; b,a,q,p,j,i,n:integer; occup:boolean; procedure efface1; begin a:=200; setcolor(black); circle(100,a,15); end; procedure efface2; begin a:=200; setcolor (black); circle(380,a,15); end; procedure efface3; begin a:=200; setcolor (black); circle(650,a,15); end; procedure guichet1; begin a:=600; while a> 100 do begin setcolor(green); circle(50,a,15); delay(1000); setcolor(black); circle(50,a,15); setcolor(green); delay(500); a:=a-50; end; circle(100,a,15); {efface2; } end; procedure guichet2; begin a:=600;b:=50; while a>200 do begin setcolor(yellow); circle(b,a,15); delay(1000); setcolor(black); circle(b,a,15); setcolor(yellow); delay(500); a:=a-50; b:=b+35; end; circle(380,a,15); efface3; end; procedure guichet3; begin a:=600; b:=50; while a>200 do begin setcolor(red); circle(b,a,15); delay(1000); setcolor(black); circle(b,a,15); setcolor(yellow); delay(500); a:=a-50; b:=b+70; end; circle(650,a,15); efface1; end; begin pilote:= detect; n:=50; p:=50; q:=200; initGraph (pilote,mode,'C:\Documents\graphisme\bgi'); for i:=1 to 10 do begin circle(n,650,15); n:=n+40; end; for j:=1 to 3 do begin rectangle(p,50,q,150); p:=p+250; q:=q+250; end; for i:=1 to 3 do begin guichet1;{guichet2;guichet3 ;} end; readln; closeGraph; end.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager