Avril 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
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 | | | | | | Calendrier |
|
| | I Love You | |
| | Auteur | Message |
---|
papydall
Nombre de messages : 6990 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: I Love You Mar 17 Oct 2017 - 16:56 | |
| - Code:
-
rem ============================================================================ rem Les Courbes paramétrées rem Courbe du Coeur rem ============================================================================ Picture 10 : full_space 10 : 2d_target_is 10 : color 10,150,100,150 alpha 20 : top 20,20 : left 20,140 : font_bold 20 : font_size 20,40 font_color 20,0,255,255 : color 20,150,100,150 : font_name 20,"arial" alpha 30 : top 30,20 : left 30,250 : font_bold 30 : font_size 30,40 font_color 30,0,255,255 : color 30,150,100,150 : font_name 30,"arial" alpha 40 : top 40,20 : left 40,420 : font_bold 40 : font_size 40,40 font_color 40,0,255,255 : color 40,150,100,150 : font_name 40,"arial" caption 20,"I L" : caption 30,"VE Y" : caption 40,"U" ' ------------------------------------------------------------------------------ Cardioide(230,40,1/7) : 2d_flood 230,42,0,255,0255 : ' Le O de I LOVE Cardioide(400,40,1/7) : 2d_flood 400,42,0,255,255 : ' Le O de YOU ' ------------------------------------------------------------------------------ Cardioide(width_client(10)/2,150,1) Cardioide(100,020,1/8) : Cardioide(500,020,1/8) Cardioide(100,100,1/4) : Cardioide(500,100,1/4) Cardioide(100,200,1/3) : Cardioide(500,200,1/3) Cardioide(100,320,1/2) : Cardioide(500,320,1/2) end rem ============================================================================ ' Tracé d'une cardioïde (courbe sous forme d'un coeur) ' xc,yc : coordonnées du creux de la cardioïde ' echelle : échelle de la courbe : agrandissement > 1; rapetissement < 1 SUB Cardioide(xc,yc,echelle) dim_local x,y,r,t r = 100 degrees : ' On travaille en ° 2d_pen_color 255,0,0 2d_poly_from xc,yc : ' origine du tracé for t = 1 to 360 x = power(sin(t),3) : ' Equation paramétrique ... y = cos(t) - power(cos(t),4) : ' ... de la cardioïde 2d_poly_to xc + r * x * echelle,yc - r * y * echelle next t 2d_flood xc,yc+5,255,0,0 : ' Remplir la cardioïde END_SUB rem ============================================================================
| |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: I Love You Mar 17 Oct 2017 - 18:43 | |
| | |
| | | Marc
Nombre de messages : 2376 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: I Love You Mar 17 Oct 2017 - 20:52 | |
| Bonjour à tous !
Merci Papydall ! C'est toujours un plaisir de lire tes sources. C'est clair, c'est net, c'est précis, c'est bien documenté, bref, que du bonheur !
| |
| | | papydall
Nombre de messages : 6990 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: I Love You Mer 18 Oct 2017 - 0:15 | |
| Pour Jean Claude : Je t'offre des papillons - Code:
-
rem ============================================================================ rem Les Courbes paramétrées rem Courbe du papillon rem ============================================================================
picture 10 : full_space 10 : 2d_target_is 10 : color 10,50,100,50 2d_pen_color 255,0,255
Papillon(width_client(10)/2,height_client(10)/2,1) Papillon(100,400,1/4) : Papillon(500,400,1/4) Papillon(100,250,1/3) : Papillon(500,250,1/3) Papillon(300,050,1/6) : Papillon(300,400,1/6) caption 0,"Terminé" end rem ============================================================================ ' xc,yc : coordonnées du centre du tracé ' echelle : échelle de la courbe : agrandissement > 1; rapetissement < 1 SUB Papillon(xc,yc,echelle) dim_local x,y,t,taille, p p = pi/180 : taille = 50 2d_poly_from xc,yc for t = 0 to 24*pi step p x = sin(t) * (exp(cos(t)) -2*cos(4*t) - power(sin(t/12),5)) y = cos(t) * (exp(cos(t)) -2*cos(4*t) - power(sin(t/12),5)) 2d_poly_to xc+taille*x*echelle,yc-taille*y*echelle : display next t 2d_flood xc-5,yc-5,0,0,255 : 2d_flood xc+5,yc-5,0,0,255 END_SUB rem ============================================================================
Pour Mark37 : quelques fougères - Code:
-
rem ============================================================================ rem Fougère de Barnsley rem ============================================================================
dim x,y,a,c,i,x0,y0,maxiter picture 10 : full_space 10 : 2d_target_is 10 : color 10,0,0,0 : 2d_pen_color 0,255,0
x0 = width(10)/10 : y0 = height(10)-20 : maxiter = 20000 for i = 1 to maxiter caption 0, str$(i) + " / " + str$(maxiter) + " ... <ESC> pour arrêter ..." a = rnd(100) if a <= 2 c = 0.5 : y = 0.16*y : x = c : ' tige else if a <= 17 c = -0.15*x+0.283*y+0.575 y = 0.26*x+0.237*y-0.084 : x = c : ' (transformation 3) else if a <= 30 c = 0.197*x-0.226*y+0.40 y = 0.226*x+0.197*y+0.049 : x = c : ' (transformation 2) else c = 0.849*x+0.037*y+0.075 y = -0.037*x+0.849*y+0.183 : x = c : ' (transformation 1) end_if end_if end_if
2d_point x0+x*400,y0-y*400 : ' Fougère centrale 2d_point x*100,(y+1)*100 : ' Forgère haut-gauche 2d_point width(10)-100+x*100,(y+1)*100 : ' Fougère haut-droite 2d_point x*100,400-y*100 : ' Fougère bas-gauche 2d_point width(10)-100+x*100,400-y*100 : ' Fougère bas-droite display if scancode = 27 then terminate next i caption 0,"Terminé !" rem ============================================================================
Pour les autres : Une dame, une maison et une voiture . - Code:
-
rem ============================================================================ rem La Dame, La Maison, La Voiture rem ============================================================================
full_space 0 picture 10 : full_space 10 : 2d_target_is 10 : color 10,92,128,128 La_Dame(200,50,0,100,50,1) La_Dame(950,500,150,100,50,1/4) La_Dame(10,10,255,0,0,1/2) La_Dame(300,600,0,255,255,1/10) La_Dame(600,100,255,255,0,1.5)
La_Maison(800,100,2) La_Maison(100,600,1/2) La_Maison(300,500,1/4)
La_Voiture(1200,500,1) La_Voiture(350,600,0.1) La_Voiture(800,600,1/2) end rem ============================================================================ SUB La_Dame(x,y,r,g,b,e) if x < 110*e then x = 110*e if y < 040*e then y = 40*e 2d_fill_on : 2d_fill_color r,g,b : 2d_circle x,y,40*e 2d_poly_from x-80*e,y+50*e 2d_poly_to x+80*e,y+50*e : 2d_poly_to x+120*e,y+170*e 2d_poly_to x+90*e,y+170*e : 2d_poly_to x+60*e,y+90*e 2d_poly_to x+20*e,y+150*e : 2d_poly_to x+80*e,y+300*e 2d_poly_to x+30*e,y+300*e : 2d_poly_to x+10*e,y+450*e 2d_poly_to x-20*e,y+450*e : 2d_poly_to x-40*e,y+300*e 2d_poly_to x-90*e,y+300*e : 2d_poly_to x-20*e,y+150*e 2d_poly_to x-60*e,y+100*e : 2d_poly_to x-90*e,y+170*e 2d_poly_to x-120*e,y+170*e : 2d_poly_to x-80*e,y+50*e 2d_flood x+70*e,y+100*e,r,g,b END_SUB rem ============================================================================ rem ============================================================================ ' x,y : Coordonnées du début du toit ' e : Facteur d'aggrandissement / rapetissement SUB La_Maison(x,y,e) 2d_pen_color 0,0,255 : 2d_poly_from x+80*e,y+20*e 2d_poly_to x+220*e,y+20*e : 2d_poly_to x+280*e,y+80*e 2d_poly_to x+140*e,y+80*e : 2d_poly_to x+80*e,y+20*e 2d_flood x+220*e,y+20*e+5,0,0,255 2d_pen_color 100,50,20 : 2d_fill_color 100,50,20 2d_rectangle x+140*e,y+80*e,x+270*e,y+170*e
2d_pen_color 50,100,50 : 2d_poly_from x+87*e,y+27*e 2d_poly_to x+140*e,y+80*e : 2d_poly_to x+140*e,y+170*e 2d_poly_to x+30*e,y+170*e 2d_poly_to x+30*e,y+80*e : 2d_poly_to x+87*e,y+27*e 2d_flood x+30*e+10,y+80*e, 200,200,50
2d_pen_color 0,0,0 : 2d_poly_from x+80*e,y+20*e 2d_poly_to x+87*e,y+27*e : 2d_poly_to x+30*e,y+80*e 2d_poly_to x+20*e,y+80*e : 2d_poly_to x+80*e,y+20*e 2d_flood x+80*e,y+20*e+2,0,0,0 2d_fill_color 0,0,0 2d_rectangle x+20*e,y+170*e,x+280*e,y+180*e 2d_rectangle x+170*e,y+90*e,x+240*e,y+155*e
2d_fill_color 255,255,0 2d_rectangle x+175*e,y+95*e,x+202*e,y+120*e 2d_rectangle x+208*e,y+95*e,x+235*e,y+120*e 2d_rectangle x+175*e,y+125*e,x+202*e,y+150*e 2d_rectangle x+208*e,y+125*e,x+235*e,y+150*e 2d_fill_color 0,200,200 : 2d_rectangle x+60*e,y+80*e,x+110*e,y+170*e 2d_fill_color 0,0,0 : 2d_rectangle x+195*e,y+15*e,x+205*e,y+30*e 2d_poly_from x+200*e,y+10*e 2d_poly_to x+210*e,y+15*e : 2d_poly_to x+190*e,y+15*e 2d_poly_to x+200*e,y+10*e 2d_flood x+200*e,y+10*e+2,0,0,0 2d_fill_color 255,255,0 : 2d_circle x+100*e,y+120*e,5*e 2d_fill_color 255,0,0 END_SUB rem ============================================================================ SUB La_Voiture(x,y,e) if x < 0 then x = 0 if y < 0 then y = 0 if e > 1 then e = 1 if e < .1 then e = .1 ' Les roues 2d_pen_color 0,0,255 : 2d_fill_color 0,0,255 2d_circle x+50*e,y+120*e,20*e : 2d_circle x+200*e,y+120*e,20*e ' Le corps 2d_pen_color 255,0,0 : 2d_fill_color 255,0,0 2d_rectangle x+50*e,y+0*e,x+250*e,y+100*e 2d_rectangle x+0*e,y+50*e,x+100*e,y+100*e ' Les fenêtres 2d_pen_color 0,255,255 : 2d_fill_color 0,255,255 2d_rectangle x+60*e,y+10*e,x+90*e,y+30*e 2d_rectangle x+100*e,y+10*e,x+130*e,y+30*e 2d_rectangle x+140*e,y+10*e,x+170*e,y+30*e 2d_rectangle x+180*e,y+10*e,x+210*e,y+30*e ' Echappement 2d_pen_color 0,0,0 : 2d_fill_color 0,0,0 2d_rectangle x+250*e,y+80*e,x+280*e,y+90*e ' Fumée 2d_circle x+290*e,y+70*e,10*e : 2d_circle x+300*e,y+50*e,8*e END_SUB rem ============================================================================
@ tous : Si vous désirez autre chose, faites vos demandes, mais n'espérez pas que j'y réponde sans faute ! | |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: I Love You Mer 18 Oct 2017 - 8:22 | |
| Bonjour à tous, @Papydall, Ces dessins 2D sous forme de SUB(s) sont très pratiques pour faire des animations. Exemple la voiture: - Code:
-
rem ============================================================================ rem La Voiture rem ============================================================================ dim n%,px%,py% full_space 0 picture 10 : full_space 10 : 2d_target_is 10 : color 10,92,128,128 px%=screen_x : py%=0 for n%=1 to 100 px%=px%-10 : py%=py%+3 La_Voiture(px%,py%,0.1) pause 1 2d_fill_on : 2d_fill_color 92,128,128 : 2d_pen_color 92,128,128 2d_circle px%+29,py%+2,10 2d_fill_off next n% 2d_fill_on : 2d_fill_color 92,128,128 : 2d_pen_color 92,128,128 2d_circle px%+29,py%+2,30 2d_fill_off La_Voiture(px%,py%,0.1) end rem ============================================================================ SUB La_Voiture(x,y,e) if x < 0 then x = 0 if y < 0 then y = 0 if e > 1 then e = 1 if e < .1 then e = .1 ' Les roues 2d_pen_color 0,0,255 : 2d_fill_color 0,0,255 2d_circle x+50*e,y+120*e,20*e : 2d_circle x+200*e,y+120*e,20*e ' Le corps 2d_pen_color 255,0,0 : 2d_fill_color 255,0,0 2d_rectangle x+50*e,y+0*e,x+250*e,y+100*e 2d_rectangle x+0*e,y+50*e,x+100*e,y+100*e ' Les fenêtres 2d_pen_color 0,255,255 : 2d_fill_color 0,255,255 2d_rectangle x+60*e,y+10*e,x+90*e,y+30*e 2d_rectangle x+100*e,y+10*e,x+130*e,y+30*e 2d_rectangle x+140*e,y+10*e,x+170*e,y+30*e 2d_rectangle x+180*e,y+10*e,x+210*e,y+30*e ' Echappement 2d_pen_color 0,0,0 : 2d_fill_color 0,0,0 2d_rectangle x+250*e,y+80*e,x+280*e,y+90*e ' Fumée 2d_circle x+290*e,y+70*e,10*e : 2d_circle x+300*e,y+50*e,8*e END_SUB rem ============================================================================ Bravo et merci. | |
| | | papydall
Nombre de messages : 6990 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: I Love You Mer 18 Oct 2017 - 13:53 | |
| Salut tout le monde. @Jean Claude Quand j’écrivais I Love You, ce qu’est justement …. I Love YouRevenons maintenant à l’animation. Essaye de déplacer la voiture avec comme paramètre e = 0.5 ou e = 1 et tu verras que tu t’es tombé dans un piège comme un débutant. Une solution : ajouter 2d_clear au début de la SUB La_Voiture(x,y,e)Ça résoudra le problème, mais ça provoquera un autre : on perd la couleur du fond du PICTURE. L’emploi de la technique du double buffer résoudra d’une façon élégante le problème. Je te laisse faire car j’ai une douleur atroce à l’épaule droite et je n’aime pas trop torturer mon clavier : ça me fait vraiment très mal ! | |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: I Love You Mer 18 Oct 2017 - 14:31 | |
| Non non ! pas de piège. J'ai bien vu que j'étais obligé d'adapter "mon cache" en fonction de la taille de la bagnole (voiture en vrai français) C'est juste que je n'ai pas insisté, car je travaille sur autre chose et je ne voulais pas perdre trop de temps. Je suis content que ta douleur soit à l'épaule droite car c'est moins préoccupant que si c'était la gauche (Risque d'infarctus du myocarde) Mais je ne suis pas content que tu ais une douleur d'où qu'elle vienne. Prend un antalgique, ça peut te soulager. A+ | |
| | | papydall
Nombre de messages : 6990 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: I Love You Mer 18 Oct 2017 - 14:50 | |
| Merci Jean Claude pour le conseil. Parce que I Love You, je poste une fois de plus ce code (je l'ai déjà posté : où et quand, je n'en sais trop) - Code:
-
rem ============================================================================ rem A N I M A T I O N rem PAR PAPYDALL rem ============================================================================
Init() Anim() Terminer()
END REM ============================================================================ SUB Init() dim p,xh,xc,xr,xs,x,y,x1,x3,xfr,v color 0,100,50,20 full_space 0 : picture 10 : width 10,920 : height 10,600 top 10,(height(0) - height(10))/2 : left 10,(width(0) - width(10))/2 color 10,0,255,255 : 2d_target_is 10 : print_target_is 10 : hide 10 font_color 10,255,0,0 : font_bold 10 : font_size 10,8 caption 0,"ANIMATION PAR PAPYDALL ...." v = 10 : ' vitesse du mouvement des engins à modifier alpha 15 : top 15,50 : left 15, left(10) + 300 : font_bold 15 : font_name 15,"tahoma" font_size 15,20 : font_color 15,255,255,0 caption 15,"<ESC> pour arrêter ...." image 20 END_SUB REM ============================================================================ SUB Anim() for p = 1 to 10000 Landscap() Building() Fred_House() Panoramic() Rita_Shop() Scool_Car() Papydall() Sidney_Car() MR() Ambulance() Trains() Snow_Man() image_recopy() if scancode = 27 then exit_sub next p END_SUB REM ============================================================================ SUB Landscap() 2d_fill_on : 2d_fill_color 000,255,255 : 2d_rectangle 0,0,920,600 2d_fill_on : 2d_fill_color 220,220,255 : 2d_rectangle 0,300,920,600 2d_pen_color 220,220,220 2d_circle 000,300,150 : 2d_circle 050,300,170 : 2d_circle 100,300,090 2d_circle 200,300,050 : 2d_circle 230,300,100 : 2d_circle 300,300,060 2d_circle 430,300,120 : 2d_circle 500,300,060 : 2d_circle 630,300,090 2d_circle 700,300,070 : 2d_circle 770,300,070 : 2d_circle 850,300,050 2d_circle 880,300,040 2d_fill_color 128,128,128 : 2d_rectangle 0,350,920,400 END_SUB REM ============================================================================ SUB Building()
2d_fill_color 164,164,164 2d_pen_color 164,164,164 : 2d_rectangle 500,70,600,320
2d_fill_color 0,0,128 : 2d_pen_color 0,0,128 For x = 510 to 570 step 30 For y = 80 to 290 step 30 : 2d_rectangle x,y,x+20,y+20 : next y next x 2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 2d_rectangle 570,260,590,320 END_SUB REM ============================================================================ SUB Fred_House()
2d_fill_color 255,0,0 : 2d_pen_color 255,0,0 2d_rectangle 700,250,800,350 2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 2d_rectangle 740,300,765,350 2d_fill_color 128,0,0 : 2d_pen_color 128,0,0 2d_rectangle 775,200,800,250 if p = 1 then xh = 1 if xh > 80 then xh = 1 xh = xh + 2.5 2d_fill_color 255,0,0 : 2d_pen_color 255,0,0 2d_rectangle 700,250,800,350 2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 2d_rectangle 740,300,765,350 2d_fill_color 128,0,0 : 2d_pen_color 128,0,0 2d_rectangle 775,200,800,250 2d_fill_color 164,164,164 : 2d_pen_color 164,164,164 2d_circle 785,195-xh,5 : 2d_circle 800,195-xh,4 : ' fummée 2d_circle 790,195-xh,3 : 2d_circle 780,195-xh,2 : ' fummée END_SUB REM ============================================================================ SUB Panoramic() 2d_fill_color 164,164,164 : 2d_pen_color 164,164,164 2d_Rectangle 0,240,150,340 2d_fill_color 0,0,255 : 2d_pen_color 0,0,255 2d_Rectangle 20,280,90,330 2d_fill_color 255,102,0 : 2d_pen_color 255,102,0 2d_Rectangle 110,270,130,330 2d_fill_color 0,255,0 : 2d_pen_color 0,255,0 2d_rectangle 20,220,105,240 2d_fill_color 255,255,0 : 2d_pen_color 255,255,0 2d_rectangle 103,220,143,240
print_locate 20,220 : print " Panoramic's bar " END_SUB REM ============================================================================ SUB Rita_Shop() 2d_fill_color 164,164,164 : 2d_pen_color 164,164,164 2d_Rectangle 170,240,320,340 2d_fill_color 0,0,255 : 2d_pen_color 0,0,255 2d_Rectangle 190,280,260,330 2d_fill_color 255,102,0 : 2d_pen_color 255,102,0 2d_Rectangle 270,280,290,340 2d_fill_color 0,255,0 : 2d_pen_color 0,255,0 2d_rectangle 180,220,310,240
print_locate 190,220 : print " Rita's Deals" print_locate 205,245 : print "Cupcakes"
END_SUB REM ============================================================================ SUB Papydall()
if p = 1 then xc = 100 xc = xc + .5*v if xc > 1000 then xc = 0 2d_fill_color 255,0,0 : 2d_pen_color 255,0,0 2d_rectangle 910-xc,270+y,970-xc,290+y 2d_rectangle 930-xc,230+y,1090-xc,290+y
2d_fill_color 0,128,128 : 2d_pen_color 0,128,128 2d_rectangle 935-xc,250+y,1075-xc,270+y
2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 print_locate 970-xc,230+y : print "Papydall " 2d_circle 925-xc,290+y,10 : 2d_circle 1050-xc,290+y,10
2d_fill_color 128,128,0 : 2d_pen_color 128,128,0 2d_circle 980-xc,260+y,5 : 2d_circle 970-xc,260+y,5 2d_circle 990-xc,260+y,5 : 2d_circle 1000-xc,260+y,5 2d_circle 1010-xc,260+y,5 : 2d_circle 1030-xc,260+y,5 2d_circle 945-xc,260+y,5
2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 END_SUB rem ============================================================================
SUB Scool_Car() if p = 1 then xr = 0 xr = xr + 1*v if xr > 1000 then x = 0 y = 60 2d_fill_color 255,255,0 : 2d_pen_color 255,255,0 2d_rectangle 910-xr,270+y,970-xr,290+y 2d_rectangle 930-xr,230+y,1000-xr,290+y
print_locate 935-xr,230+y : print "Scool" 2d_fill_color 0,128,128 : 2d_pen_color 0,128,128 2d_rectangle 935-xr,250+y,995-xr,270+y 2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 2d_circle 925-xr,290+y,10 : 2d_circle 990-xr,290+y,10 END_SUB REM ============================================================================ SUB Sidney_Car() if p = 1 then x1 = 0 x1 = x1 + 1.5*v if x1 > 1200 then x1 = 0 2d_fill_color 0,0,128 : 2d_pen_color 0,0,128 2d_rectangle 910-x1,270+y,970-x1,290+y 2d_rectangle 930-x1,260+y,970-x1,280+y 2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 2d_circle 925-x1,290+y,10 : 2d_circle 955-x1,290+y,10 END_SUB REM ============================================================================ SUB MR() if p = 1 then x3 = 90 x3 = x3 + 1.1*v : y = 60 if x3 > 1000 then x3 = 0
2d_fill_color 255,0,0 : 2d_pen_color 255,0,0 2d_rectangle 910-x3,270+y,970-x3,290+y 2d_rectangle 930-x3,230+y,1000-x3,290+y
2d_fill_color 0,128,128 : 2d_pen_color 0,128,128 2d_rectangle 935-x3,250+y,995-x3,270+y
2d_fill_color 255,255,0 : 2d_pen_color 255,255,0 print_locate 935-x3,230+y : print " MR 123 " 2d_circle 925-x3,290+y,10 : 2d_circle 990-x3,290+y,10 END_SUB REM ============================================================================ SUB Snow_Man() y = 300 2d_fill_color 255,255,255 : 2d_pen_color 255,255,255 2d_circle 100,230+y,50 : 2d_circle 100,150+y,45 : 2d_circle 100,70+y,40 2d_fill_color 255,255,0 : 2d_pen_color 0,0,0 : 2d_circle 90,60+y,5 if sin(p/150) < .98 then 2d_circle 110,60+y,5 2d_circle 100,85+y,5 : 2d_circle 110,85+y,5 : 2d_circle 90,85+y,5 2d_circle 080,80+y,5 : 2d_circle 120,80+y,5 print_locate 75,145+y : print "BONJOUR" print_locate 70,225+y : print "VISITEUR" END_SUB REM ============================================================================ SUB Trains() if p = 1 then xfr = 0 xfr = xfr + 1*v 2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 if xfr > 1000 then xfr = -200 2d_rectangle 10+xfr,280,40+xfr,340 2d_fill_color 255,102,0 : 2d_pen_color 255,102,0 2d_rectangle 10+xfr,315,130+xfr,365 2d_fill_color 164,164,164 : 2d_pen_color 164,164,164 2d_circle 70+xfr,380,15 : 2d_circle 110+xfr,380,15 : 2d_circle 35+xfr,380,15 2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 2d_circle 70+xfr,380,5 : 2d_circle 110+xfr,380,5 : 2d_circle 35+xfr,380,5 2d_rectangle xfr-30,340,10+xfr,350 2d_fill_color 255,0,0 : 2d_pen_color 255,0,0 2d_rectangle xfr-100,315,xfr-25,365 2d_fill_color 164,164,164 : 2d_pen_color 164,164,164 2d_circle xfr-80,380,15 : 2d_circle xfr-40,380,15 2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 2d_circle xfr-80,380,5 : 2d_circle xfr-40,380,5
if xfr > 250 then x = 0 2d_rectangle 230+xfr,260,250+xfr,320 2d_fill_color 255,0,0 : 2d_pen_color 255,0,0 2d_rectangle 210+xfr,315,330+xfr,365
2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 2d_circle 270+xfr,370,15 : 2d_circle 310+xfr,370,15 : 2d_circle 235+xfr,370,15 2d_fill_color 255,255,0 : 2d_pen_color 255,255,0 2d_circle 270+xfr,370,5 : 2d_circle 310+xfr,370,5 : 2d_circle 235+xfr,370,5
END_SUB
REM ============================================================================ SUB Ambulance() if p = 1 then xs = 200 y = 65 : xs = xs + 2.5*v if xs > 1200 then xs = -250
2d_fill_color 255,0,0 : 2d_pen_color 255,0,0 2d_circle 965-xs,225+y,8
2d_fill_color 164,164,164 : 2d_pen_color 164,164,164 2d_rectangle 910-xs,270+y,970-xs,290+y 2d_rectangle 930-xs,230+y,1000-xs,290+y
2d_fill_color 0,128,128 : 2d_pen_color 0,128,128 2d_rectangle 935-xs,250+y,995-xs,270+y
print_locate 935-xs,230+y : print "Ambulance" 2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 2d_circle 925-xs,290+y,10 : 2d_circle 990-xs,290+y,10
2d_fill_color 255,0,0 : 2d_pen_color 255,0,0 2d_circle 650-xs,225+y,10 2d_fill_color 255,255,255 : 2d_pen_color 255,255,255 2d_rectangle 610-xs,270+y,670-xs,290+y 2d_rectangle 630-xs,230+y,700-xs,290+y 2d_fill_color 255,0,0 : 2d_pen_color 255,0,0 2d_rectangle 650-xs,250+y,680-xs,260+y
2d_rectangle 660-xs,240+y,670-xs,270+y 2d_fill_color 0,0,0 : 2d_pen_color 0,0,0 2d_circle 625-xs,290+y,10 : 2d_circle 690-xs,290+y,10
END_SUB REM ============================================================================ ' Pour éviter le scintillement SUB image_recopy() 2d_target_is 10 : 2d_image_copy 20,0,0,width(10),height(10) 2d_target_is 0 : 2d_image_paste 20,left(10),top(10) 2d_target_is 10 END_SUB rem ============================================================================ SUB Terminer() dim_local i for i = height(0) to 50 step -10 height 0,i : pause 100 next i terminate END_SUB rem ============================================================================
- Jean Claude a écrit:
- ... je travaille sur autre chose ...
Bonne continuation ... | |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: I Love You Mer 18 Oct 2017 - 17:16 | |
| Ah oui ! là ça circule beaucoup devant le bureau de Panoramic.
Je ne me rappelle pas avoir vu ce code avant, mais ça peut arriver que je l'ai zapper.
En tout cas, ça démontre bien que tes dessins sous forme de SUB(s) peuvent servir pour des animations sans utiliser un SCENE2D, ni de SPRITE.
A+ | |
| | | Marc
Nombre de messages : 2376 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: I Love You Mer 18 Oct 2017 - 22:00 | |
| Bonsoir à tous ! Merci Papydall ! Sais-tu comment dessiner un ballon ? Je pensais dessiner un oeuf puis ajouter une queue. Qu'en penses-tu ? Bonne soirée à tous ! | |
| | | papydall
Nombre de messages : 6990 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: I Love You Jeu 19 Oct 2017 - 0:58 | |
| - Marc37 a écrit:
- Sais-tu comment dessiner un ballon ?
Pas vraiment ! Mais je sais comment tracer une Quartique Piriforme : courbe sous forme de poire. Voici le code et c’est à toi d’ajouter la queue. - Code:
-
rem ============================================================================ rem Les Courbes paramétrées rem QUARTIQUE PIRIFORME rem Courbe sous forme de Poire rem rem __________________________________ rem | | rem | x = a*a/b * (1 + sin(t))*cos(t) | rem | y = a*(1 + sin(t)) | rem |__________________________________|
rem ============================================================================
Picture 10 : full_space 10 : 2d_target_is 10
Quartique_Piriforme(100,420,1/2) Quartique_Piriforme(200,420,1) Quartique_Piriforme(400,420,2)
end rem ============================================================================ SUB Quartique_Piriforme(xc,yc,echelle) dim_local a,b,x,y,t a = 100 : b = 2*a : ' Essayer avec b = 3*a ; b = 4*a , etc. degrees 2d_poly_from xc+(a*a/b)*echelle,yc - a*echelle for t = 0 to 360 x = a*a/b * (1 + sin(t))*cos(t) y = a*(1 + sin(t)) 2d_poly_to xc+x*echelle, yc-y*echelle next t 2d_flood xc-2+(a*a/b)*echelle,yc- a*echelle,255,0,0 END_SUB rem ============================================================================
| |
| | | papydall
Nombre de messages : 6990 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: I Love You Jeu 19 Oct 2017 - 1:58 | |
| Et voici l’ovoïde : courbe sous forme d’œuf. - Code:
-
rem ============================================================================ rem Courbe en coordonnées polaire rem OVOIDE rem Equation polaire : rem __________________________ rem | | rem | r = a * power(cos(t),3) | rem |__________________________| rem rem ============================================================================
Picture 10 : full_space 10 : 2d_target_is 10 Ovoide(300,420,2) Ovoide(100,220,1) Ovoide(100,350,1/2) Ovoide(100,400,1/8)
end rem ============================================================================ ' xc,yc : coordonnées de la pointe basse de l'ovoïde SUB Ovoide(xc,yc,echelle) dim_local a,x,y,t,r a = 200 degrees 2d_poly_from xc,yc for t = 0 to 360 r = a*power(sin(t),3) x = r*cos(t) y = r*sin(t) 2d_poly_to xc+x*echelle,yc-y*echelle next t 2d_flood xc,yc-2,250,200,50 END_SUB rem ============================================================================
| |
| | | Marc
Nombre de messages : 2376 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: I Love You Jeu 19 Oct 2017 - 10:10 | |
| Merci Papydall !
Je vais donc ajouter une queue à l’œuf pour mes essais.
Très bonne journée à tous !
| |
| | | JL35
Nombre de messages : 7093 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: I Love You Jeu 19 Oct 2017 - 15:25 | |
| Jolie ton animation papydall, je me souviens effectivement l'avoir déjà vue autrefois. Ce qui est très étonnant, c'est sa fluidité, quand on voit le nombre d'opérations graphiques effectuées ! La méthode utilisée est vraiment à étudier de près.
J'ai ajouté quelques pixels aux coordonnées y des bâtiments pour qu'ils soient au niveau du sol (subs Building, Panoramic, Rita_Shop), sinon ils sont suspendus en l'air. Mais ce n'est vraiment qu'un détail, chapeau pour l'animation. | |
| | | mindstorm
Nombre de messages : 684 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: I Love You Sam 21 Oct 2017 - 15:51 | |
| Bonjour Papydall Si mon fils en 1°S pouvait être aussi amoureux des maths que toi! Heureusement chacun doit trouver sa voie. Merci pour tes animations | |
| | | papydall
Nombre de messages : 6990 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: I Love You Sam 21 Oct 2017 - 18:22 | |
| L’essentiel c’est qu’il fasse ce qu'il lui plait, dans ce qu’il se sent à l’aise. Il n’y a pas que les maths dans la vie ! C’est vrai que je suis amoureux (de ma femme évidemment) comme l’a si bien dit Jean Claude et aussi des maths. Mon amour pour les maths, c’était pour défier mon professeur, suite à une punition qu’il m’avait injustement infligée. Mais bon ce n’était pas une histoire drôle. | |
| | | Contenu sponsorisé
| Sujet: Re: I Love You | |
| |
| | | | I Love You | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |