Novembre 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 |
|
|
| Après les rectangles à coins arrondis ... | |
| | Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Après les rectangles à coins arrondis ... Mar 22 Oct 2013 - 20:44 | |
| Salut tout le monde Après les rectangles à coins arrondis, voici d’autres figures pouvant ou non trouver une utilité quelconque. - cliquez:
- Code:
-
rem ============================================================================ ' Différentes courbes paramétriques pouvant servir pour fond d'un texte, etc.. rem COURBES_PARAMETRIQUES.BAS rem PAR PAPYDALL rem ============================================================================
Super_ellipse(150,50,10,"*** SALUT TOUS LES PANORAMICIENS ***) ' Quadratique_Piriforme(300,20,300,300,"h") ' Quadratique_Piriforme(300,20,300,300,"b") ' Quadratique_Piriforme(300,20,300,300,"g") ' Quadratique_Piriforme(300,20,300,300,"d") ' Coeur(300,200,150,200) ' Astroide(300,220,200) ' Cardioide(200,200,100) ' Nephroide(300,200,50) ' Ellipse(250,220,200,100) ' Ellipse(250,220,100,200) ' Polygone(250,220,200,6) : ' hexagone ' Papillon(300,250,50)
end
rem ============================================================================ ' Paramètres : ' a : demi-diamètre horizontal ' b : demi-diamètre vertical ' n : détermine la nature de la super-ellipse(hypo ou hyper-ellipse) et sa forme ' Plus la valeur de n augmente, plus la courbe obtenue tend vers un rectangle. ' t$ : texte à afficher SUB Super_ellipse(a,b,n,t$) dim_local pi,p,t,x,y, xc,yc,x1,y1 ,w,h pi = acos(-1) : p = pi/180 w = width(0) : h = height(0) : xc = w/2 : yc = h/2 picture 9999 : x1 = xc - a-10 : y1 = yc - b-10 top 9999,y1 : left 9999,x1 : width 9999,2*(a+10) : height 9999,2*(b+10) xc = width(9999)/2 : yc = height(9999)/2 :color 9999,255,0,0 :display 2d_target_is 9999 : 2d_poly_from xc + a,yc for t = 0 to 2*pi+p step p x = power(abs(cos(t)),2/n) * a * sgn(cos(t)) y = power(abs(sin(t)),2/n) * b * sgn(sin(t)) 2d_poly_to xc+x,yc+y next t 2d_flood xc-a+2,yc,255,255,0 alpha 9998 :top 9998, top(9999)+b :left 9998,left(9999)+a/4 color 9998,255,255,255 : font_color 9998,0,0,255 : font_bold 9998 caption 9998,t$ END_SUB rem ============================================================================ ' Quadratique piriforme ' Paramètres : ' x0,y0 : coordonnées du sommet de la courbe ' a : hauteur de la courbe ' b : ce paramètre est lié au pramètre a et influe sur la largeur de la courbe ' pour b < a : la courbe sera plutôt large ' pour b > a : la courbe sera plutôt rétrécie ' pour b = a : la courbe ressemble à une goutte d'eau. ' s$ : détermine le sens de la courbe ' Si s$ = "H" la pointe de la courbe est dirigée vers le haut ' Si s$ = "G" la pointe de la courbe est dirigée vers la gauche ' Si s$ = "D" la pointe de la courbe est dirigée vers la droite ' Si s$ = "B" la pointe de la courbe est dirigée vers le bas rem ============================================================================ SUB Quadratique_Piriforme(x0,y0,a,b,s$) dim_local x,y,pi,p,t,x1,y1 ,w,h pi = acos(-1) : p= pi/180 : s$ = upper$(s$) picture 9999 : top 9999,y0-10 : left 9999, x0 -a/2 width 9999, a+20 : height 9999,a +30 2d_target_is 9999 if s$ = "H" then 2d_poly_from a/2,y0 + a if s$ = "G" then 2d_poly_from y0+a-5,a/2 if s$ = "D" then 2d_poly_from y0-10,a/2 if s$ = "B" then 2d_poly_from a/2,30-y0 for t = 0 to pi+p step p x = a/2+(a*a*power(cos(t),3)*sin(t))/b : y = y0 + a*cos(t)*cos(t) if s$ = "H" then 2d_poly_to x,y if s$ = "G" then 2d_poly_to y-5,x if s$ = "D" then 2d_poly_to a-y+30,x if s$ = "B" then 2d_poly_to x,a-y +30 next t 2d_flood x,y-2,255,255,0 END_SUB rem ============================================================================ ' Paramètres : ' xc,yc : coordonnée du creux du coeur ' Les paramètres rx et ry détermine l'allure du coeur repectivement dans les ' sens vertical et horizontal ' Essayez différentes valeurs pour voire rem ============================================================================ SUB Coeur(xc,yc,rx,ry) dim_local x,y,t,pi,p ,x0,y0 pi = acos(-1) : p = pi/180 picture 9999 : top 9999,yc-50 : left 9999, xc -xc/2 width 9999, 1.5*rx : height 9999,1.25*ry : 2d_target_is 9999 x0 = width(9999)/2 : y0 = height(9999)/2 2d_poly_from x0,y0-ry/2 +10 : 2d_pen_color 255,0,0 for t = 0 to 2*pi step p x = 4*cos(t)*cos(t)*sin(t)*sin(t)*sin(t) y = (3-2*cos(t)*cos(t))*cos(t)*cos(t) x = x0 + rx * x : y = y0 -ry *(y - 1/2) + 10 2d_poly_to x,y next t 2d_flood x,y+2,255,0,0 END_SUB rem ============================================================================ ' Paramètres : ' XC,YC : coordonnées du centre ' r : rayon du cercle circonscrit à l'astroïde, c-à-d longueur d'une branche à ' partir du centre SUB Astroide(xc,yc,r) dim_local x,y,t,n,pi,p pi = acos(-1) : p = pi/180 : n = 5 2d_poly_from xc+r,yc for t = 0 to 2*pi step p x = r*power(cos(t),n) : y = r*power(sin(t),n) 2d_poly_to xc + x,yc+y next t 2d_flood xc,yc,255,255,0 END_SUB rem =========================================================================== ' Paramètres : ' xc,yc : coordonnées du creux de la cardioïde ' r : rayon SUB Cardioide(xc,yc,r) dim_local x,y,t,pi,p,a pi = acos(-1) : p = pi/180 2d_poly_from xc+2*r,yc for t = 0 to 2*pi step p a = r *(1+cos(t)) : x = a*cos(t) : y = a*sin(t) :2d_poly_to xc + x,yc+y next t 2d_flood xc+x-2,yc+y,255,255,0 END_SUB rem =========================================================================== ' Paramètres : ' Xc,Yc : coordonnées du centre de la néphroïde SUB Nephroide(xc,yc,r) dim_local x,y,t,pi,p,a pi = acos(-1) : p = pi/180 2d_poly_from xc,yc+2*r for t = 0 to 2*pi step p x = r*(3*sin(t) - sin(3*t)) : y = r*(3*cos(t) - cos(3*t)) 2d_poly_to xc + x,yc+y next t 2d_flood xc+r,yc,255,255,0 END_SUB rem =========================================================================== ' Tracé d'une ellipse ' Paramètres: ' xc,yc : coordonnées du centre de l'ellipse ' rx et ry : respectivement rayon horizontal et rayon vertical de l'ellipse ' si rx = ry on obtient un cercle SUB Ellipse(xc,yc,rx,ry) dim_local x,y,t,pi,p pi = acos(-1) : p = pi/180 : 2d_poly_from xc + rx,yc for t = 0 to 2*pi step p x = xc + rx * cos(t) : y = yc + ry * sin(t) : 2d_poly_to x,y next t 2d_flood xc,yc,255,255,0 END_SUB rem ============================================================================ ' Tracé d'un polygone convexe régulier ' Paramètres : ' xc,yc : coordonnées du centre du polygone ' rayon : rayon du cercle circonscrit au polygone ' Nbcote : nombre des côtés du polygone ' Exemple d'appel : ' Polygone(250,220,200,3) : ' triangle ' Polygone(250,220,200,4) : ' carré ' Polygone(250,220,200,5) : ' pentagone ' Polygone(250,220,200,10) : ' décagone ' Remarque : ' Pour un grand nombre des côtés on obtient un cercle ' Polygone(250,220,200,360) : ' un cercle
SUB Polygone(xc,yc,rayon,NbCote) dim_local x,y,t,pi,p pi = acos(-1) : p = 2*pi/NbCote 2d_poly_from xc + rayon,yc for t = 0 to 2*pi+.1 step p x = xc + rayon * cos(t) : y = yc + rayon * sin(t) : 2d_poly_to x,y next t 2d_flood xc,yc,255,255,0 END_SUB rem ============================================================================ ' Tracé d'un papillon ' Paramètres : ' xc,yc : coordonnées du centre du papillon ' coef : coefficient multiplicateur SUB Papillon(xc,yc,coef) dim_local r,theta,x,y,pi,p pi = acos(-1) : p = pi/180 2d_poly_from xc,yc for theta = 0 to 20*pi step p r = exp(sin(theta)) - 2 * cos(4*theta) + sin(1/24 * power((2*theta - pi),5)) x = r*cos(theta) : y = r*sin(theta) 2d_pen_color rnd(255),rnd(155),rnd(25) : 2d_poly_to xc+coef*x,yc-coef*y next theta END_SUB rem ============================================================================
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Après les rectangles à coins arrondis ... Mar 22 Oct 2013 - 21:24 | |
| Le papillon c'est le meilleur.
Bravo Papydall
A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Après les rectangles à coins arrondis ... Mer 23 Oct 2013 - 0:04 | |
| Bravo papydall, j'aurais aimé faire une coloration de ta goutte, enfin, je veux dire ton Quadratique_Piriforme "H", mais je n'ai pas vraiment réussi à faire ce que je voulais, mais je partage quand même le résultat: - Code:
-
dim x0,y0,a,b,x,y,pi,p,t, i
pi = acos(-1) : p= pi/180 x0 = 400 : y0 = 30 : a =300 : b = 300 picture 9999 : top 9999,10 : left 9999, 10 : width 9999, 500 : height 9999,400 2d_target_is 9999 for i = 1 to 30 a=a-5 : b=b+5 : 2d_pen_color 7*i,7*i,150+2*i 2d_poly_from a/2,y0 + a for t = 0 to pi+p step p x = a/2+(a*a*power(cos(t),3)*sin(t))/b : y = y0 + a*cos(t)*cos(t) 2d_poly_to x,y next t 2d_flood x+2,y-2,7*i,7*i,100+2*i next i | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Après les rectangles à coins arrondis ... Mer 23 Oct 2013 - 0:32 | |
| @Jean Claude Ok pour le papy … euh le papillon. Je te l’offre gracieusement. @Jicehel Merci pour le partage. Voilci mon essai. - ici:
- Code:
-
Quadratique_Piriforme(300,20,300,300,"h")
end rem ============================================================================ ' Quadratique piriforme ' Paramètres : ' x0,y0 : coordonnées du sommet de la courbe ' a : hauteur de la courbe ' b : ce paramètre est lié au pramètre a et influe sur la largeur de la courbe ' pour b < a : la courbe sera plutôt large ' pour b > a : la courbe sera plutôt rétrécie ' pour b = a : la courbe ressemble à une goutte d'eau. ' s$ : détermine le sens de la courbe ' Si s$ = "H" la pointe de la courbe est dirigée vers le haut ' Si s$ = "G" la pointe de la courbe est dirigée vers la gauche ' Si s$ = "D" la pointe de la courbe est dirigée vers la droite ' Si s$ = "B" la pointe de la courbe est dirigée vers le bas rem ============================================================================ SUB Quadratique_Piriforme(x0,y0,a,b,s$) dim_local x,y,pi,p,t,x1,y1 ,w,h pi = acos(-1) : p= pi/180 : s$ = upper$(s$) picture 9999 : top 9999,y0-10 : left 9999, x0 -a/2 width 9999, a+20 : height 9999,a +30 2d_target_is 9999 couleur() : 2d_pen_color 255,255,0 : 2d_pen_width 5 if s$ = "H" then 2d_poly_from a/2,y0 + a if s$ = "G" then 2d_poly_from y0+a-5,a/2 if s$ = "D" then 2d_poly_from y0-10,a/2 if s$ = "B" then 2d_poly_from a/2,30-y0 for t = 0 to pi+p step p x = a/2+(a*a*power(cos(t),3)*sin(t))/b : y = y0 + a*cos(t)*cos(t) if s$ = "H" then 2d_poly_to x,y if s$ = "G" then 2d_poly_to y-5,x if s$ = "D" then 2d_poly_to a-y+30,x if s$ = "B" then 2d_poly_to x,a-y +30 next t
END_SUB rem ============================================================================ sub couleur() dim_local i for i = 0 to 767 : ' 0 à 767 = 3 * 256 valeurs pour les 3 composantes R,G,B if i < 256 ' on diminue le rouge (de 255 à 0),on augmente le vert (de 0 à 255),on annulle le bleu 2d_pen_color 255-i,i,0 else if i < 512 ' on annule le rouge,on diminue le vert (de 255 à 0), on augmente le bleu (de 0 à 255) 2d_pen_color 0,255-(i-256),i-256 else ' on augmente le rouge (de 0 à 255),on annule le vert, on augmente le bleu (de 0 à 255) 2d_pen_color i-512,0,255-(i-512) end_if end_if 2d_line i,1,i,450 next i end_sub rem ================================================
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Après les rectangles à coins arrondis ... Mer 23 Oct 2013 - 7:24 | |
| Pas mal Papydall, le dégradé. Au début, moi, ce que j'avais essayé c'était de faire le dégradé à l’intérieur de la goutte, pour faire une espèce d'effet 3D, mais je n'ai pas réussi à le faire proprement | |
| | | Contenu sponsorisé
| Sujet: Re: Après les rectangles à coins arrondis ... | |
| |
| | | | Après les rectangles à coins arrondis ... | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |