Bonjour,
Je suis lycéen en Terminale S et ayant option ISN mon professeur nous à demandé de créer une animation avec CamL Light. J'ai donc pour idée de faire une "montre de gousset", enfin surtout des aiguilles qui tournent mais impossible de trouver comment faire tourner ces aiguilles d'une jolie forme circulaire. Pour le moment j'ai découpé la rotation en quatre quart mais le résultat fait que l'aiguille s'allonge aux quatre côté (12h, 3h, 6h et 9h) et se réduit au milieu de chaque.
Mon professeur m'a donné comme piste la trigonométrie mais je n'arrive à rien. Même si je n'ai pas le temps de corriger à temps (pour vendredi) j'aurais bien voulu comprendre comment faire, voici ce que j'ai pour le moment :
J'ai mis en gras l'animation, j'ai donc quatre animations pour le moment. Si une âme charitable aurait l'amabilité de m'aider, à défaut de vouloir me donner directement la réponse, quelques indices ?
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185 #open "graphics";; open_graph " 800x600";; (*fond gris blanc*) set_color (rgb 245 245 245);; fill_circle 400 250 200;; (*fond gris clair*) set_color (rgb 230 230 230);; fill_circle 400 250 195;; (*fond gris foncé*) set_color (rgb 200 200 200);; fill_circle 400 250 190;; (*fond gris clair 2*) set_color (rgb 230 230 230);; fill_circle 400 250 180;; (*contours noirs*) set_color black;; draw_circle 400 250 180;; set_color black;; draw_circle 400 250 200;; (*fond principal blanc*) set_color white;; fill_circle 400 250 150;; (*contours noirs*) set_color black;; draw_circle 400 250 150;; (*heures*) moveto 520 241;; draw_string "III";; moveto 393 105;; draw_string "VI";; moveto 258 241;; draw_string "IX";; moveto 389 375;; draw_string "XII";; (*bouton 1*) set_color black;; fill_rect 383 450 34 25;; set_color (rgb 230 230 230);; fill_rect 384 450 32 24;; set_color black;; moveto 388 453;; lineto 388 470;; moveto 392 453;; lineto 392 470;; moveto 396 453;; lineto 396 470;; moveto 400 453;; lineto 400 470;; moveto 404 453;; lineto 404 470;; moveto 408 453;; lineto 408 470;; moveto 412 453;; lineto 412 470;; (*aiguille des secondes*) set_color red;; moveto 400 250;; lineto 400 360;; (*aiguille des heures*) set_color black;; moveto 400 250;; lineto 400 190;; (*aiguille des minutes*) set_color black;; moveto 400 250;; lineto 500 250;; (*rond central*) set_color (rgb 230 230 230);; fill_circle 400 250 10;; set_color black;; draw_circle 400 250 10;; fill_circle 400 250 4;; (*deplacement aiguille des seconde*) let pause () = let res=ref 0 in for j = 0 to 550000 do res := !res + j*10 done;; (*deplacement XII vers III*) for i = 0 to 110 do set_color white; moveto 400 250; lineto (400+(i-1)) (360-(i-1)); set_color red; moveto 400 250; lineto (400+i) (360-i); set_color (rgb 230 230 230); fill_circle 400 250 10; set_color black; draw_circle 400 250 10; fill_circle 400 250 4; pause (); done;; (*deplacement aiguille des secondes*) let pause () = let res=ref 0 in for b = 0 to 550000 do res := !res + b*10 done;; (*deplacement III vers VI*) for i = 0 to 110 do set_color black; moveto 400 250; lineto 500 250; set_color white; moveto 400 250; lineto (510-(i-1)) (250-(i-1)); set_color red; moveto 400 250; lineto (510-i) (250-i); set_color (rgb 230 230 230); fill_circle 400 250 10; set_color black; draw_circle 400 250 10; fill_circle 400 250 4; pause (); done;; (*deplacement aiguille des secondes*) let pause () = let res=ref 0 in for j = 0 to 550000 do res := !res + j*10 done;; (*deplacement VI vers IX*) for i = 0 to 110 do set_color black; moveto 400 250; lineto 400 190; set_color white; moveto 400 250; lineto (400-(i-1)) (140+(i-1)); set_color red; moveto 400 250; lineto (400-i) (140+i); set_color (rgb 230 230 230); fill_circle 400 250 10; set_color black; draw_circle 400 250 10; fill_circle 400 250 4; pause (); done;; (*deplacement aiguille des secondes*) let pause () = let res=ref 0 in for j = 0 to 550000 do res := !res + j*10 done;; (*deplacement IX vers XII*) for i = 0 to 110 do set_color white; moveto 400 250; lineto (290+(i-1)) (250+(i-1)); set_color red; moveto 400 250; lineto (290+i) (250+i); set_color (rgb 230 230 230); fill_circle 400 250 10; set_color black; draw_circle 400 250 10; fill_circle 400 250 4; pause (); done;;
Merci à vous, Jinseih.
Partager