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 |
|
|
| Roues dentées | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Roues dentées Sam 7 Juil 2018 - 17:05 | |
| Encore une petite sub (je précise: toute simple et sans prétentions !): - Code:
-
DIM x%,y%,xc%,yc%,dout%,dint%,rout%,rint%,nde%,an%,t% PICTURE 1: FULL_SPACE 1: 2D_TARGET_IS 1 xc% = 250: yc% = 200 dout% = 300: ' diamètre extérieur dint% = 100: ' diamètre intérieur nde% = 30: ' nombre de dents (ajustable par la sub) Roue_dentee(xc%,yc%,dout%,dint%,nde%) 2D_FLOOD xc%,yc%,255,255,0 END
SUB Roue_dentee(xc%,yc%,dex%,din%,nde%) ' Dessin d'un roue dentée avec les paramètres courants (couleur, épaisseur etc.) ' Centrée en xc%,yc%, diamètres ext. dex% et int. din%, nombre de dents nbe% ' NB le nombre de dents peut être ajusté (en plus) par la sub pour un rebouclage ' régulier des dents. DIM_LOCAL x%,y%,rex%,rin%,an%,t% rex% = dex%/2: rin% = din%/2 ' ajustage éventuel du nombre de dents pour rebouclage correct an% = 360/nde%: WHILE an%<>360/nde%: nde%=nde%+1: an%=360/nde%: END_WHILE DEGREES 2D_POLY_FROM xc%+rex%,yc% FOR t% = an% TO 360 STEP an% x% = xc%+rin%*COS(t%-an%/2): y% = yc%-rin%*SIN(t%-an%/2) 2D_POLY_TO x%,y% x% = xc%+rex%*COS(t%): y% = yc%-rex%*SIN(t%) 2D_POLY_TO x%,y% NEXT t% END_SUB On peut évidemment tester tous les paramètres: couleur, épaisseur, dimensions. Mon idée de départ c'était des engrenages qui tournent imbriqués l'un dans l'autre, mais j'en reste au B A BA (même si je me doute bien que vous-mêmes n'en resterez pas babas !) L'exemple ci-dessus: Une petite variante (justement concernant les engrenages): on ajoute en paramètre l'angle de départ de la 1ère dent, pour un emboîtage correct avec un autre engrenage éventuel: - Code:
-
DIM x%,y%,xc%,yc%,dout%,dint%,rout%,rint%,nde%,an%,t% DIM da% PICTURE 1: FULL_SPACE 1: 2D_TARGET_IS 1 2D_PEN_WIDTH 2 xc% = 250: yc% = 200 dout% = 300: ' diamètre extérieur dint% = 260: ' diamètre intérieur nde% = 30: ' nombre de dents (ajustable par la sub) da% = 0: ' angle de départ Roue_dentee(xc%,yc%,dout%,dint%,nde%,da%) 2D_CIRCLE xc%,yc%,20 xc% = 435 dout% = 100 dint% = 60 nde% = 10 da% = 20: ' angle de départ Roue_dentee(xc%,yc%,dout%,dint%,nde%,da%) 2D_CIRCLE xc%,yc%,10 END
SUB Roue_dentee(xc%,yc%,dex%,din%,nde%,da%) ' Dessin d'un roue dentée avec les paramètres courants (couleur, épaisseur etc.) ' Centrée en xc%,yc%, diamètres ext. dex% et int. din%, nombre de dents nbe% ' da% = angle de départ (decgrés) de la 1ère dent, à l'extrême droite. ' si da% = 0: la dent est horizontale. ' NB le nombre de dents peut être ajusté (en plus) par la sub pour un rebouclage ' régulier des dents. DIM_LOCAL x%,y%,rex%,rin%,an%,t% rex% = dex%/2: rin% = din%/2 ' ajustage éventuel du nombre de dents pour rebouclage correct an% = 360/nde%: WHILE an%<>360/nde%: nde%=nde%+1: an%=360/nde%: END_WHILE DEGREES x% = xc%+rex%*COS(da%): y% = yc%-rex%*SIN(da%): ' pointe de la dent de départ 2D_POLY_FROM x%,y% FOR t% = an%+da% TO 360+da% STEP an% x% = xc%+rin%*COS(t%-an%/2): y% = yc%-rin%*SIN(t%-an%/2) 2D_POLY_TO x%,y% x% = xc%+rex%*COS(t%): y% = yc%-rex%*SIN(t%) 2D_POLY_TO x%,y% NEXT t% END_SUB C'est peut-être un peu grossier, mais ça peut être une idée de départ. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Roues dentées Dim 8 Juil 2018 - 2:38 | |
| - JL35 a écrit:
- C'est peut-être un peu grossier, mais ça peut être une idée de départ.
C’est aussi un peu grossier, mais ça peut être une idée d’arrivée. - Code:
-
rem ============================================================================ rem Roue dentée rem ============================================================================ dim xc,yc,r picture 10 : full_space 10 : 2d_target_is 10 xc = width_client(10) / 2 : yc = height_client(10) / 2 : r = 150
Roue_Dentee(xc,yc,r) end rem ============================================================================ SUB Roue_Dentee(xc,yc,r) dim_local a,p degrees p = 360/r*10 2d_pen_width 20 : 2d_circle xc,yc,r for a = 0 to 360 step p 2d_arc xc,yc,r+16,a,a-p/3 next a ' 2d_flood xc,yc,250,150,50 END_SUB rem ============================================================================
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Roues dentées Dim 8 Juil 2018 - 11:05 | |
| Pas mal et bien plus succinct comme code (et résultat plus esthétique), mais pas tout à fait le même usage (tu ne choisis pas le nombre de dents).
| |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Roues dentées Dim 8 Juil 2018 - 11:22 | |
| Bonjour à tous ! Une autre idée de roue dentée : Source extrait de mon programme inachevé >> ICI << - Code:
-
DIM t,n,p,a,r,y,y1,x,x1,z,o
p=4 n=10 a=1 r=3 z=26 o=150
FOR t=1 to 360 STEP 0.1 y=((POWER(SIN(t*n),p)*a+r)/(SQR(POWER(TAN(t),2)+1))) x=tan(t)*y y1=(y*-1) x1=(x*-1) 2D_POINT z*x+o,z*y+o 2D_POINT z*x1+o,z*y1+o NEXT t END Bonne journée ensoleillée à tous ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Roues dentées Dim 8 Juil 2018 - 11:36 | |
| Ah ouais, pas mal, ça ressemble plus à un engrenage que les miennes, avec les lignes arrondies. Bravo Marc, tu as bien mérité ton farniente au soleil ce dimanche ! (enfin, j'anticipe un peu...) | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Roues dentées Dim 8 Juil 2018 - 11:52 | |
| Merci ! Quelques précisions : p= puissance du sinus n=nombre de dents/2 a=hauteur des dents r=rayon z=zoom o=offset de dessin x et y, que l'on peut séparer par deux valeurs distinctes x et y. Pour plus de précision, on peut utiliser des nombres à virgule pour affiner le dessin. Quant à faire tourner tout ça, avec les dents qui s’emboîtent, à mon idée, l'idéal en Panoramic aurait été le moteur 3D avec la fonction 3D_PLANE (voir >>ICI<<) qui permet une vitesse variable et fluidité parfaite... MAIS il manque une couleur de transparence comme en 2D pour pouvoir le faire. Bonne continuation ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Roues dentées Dim 8 Juil 2018 - 13:50 | |
| Bon, j’apporte ma scie circulaire. Ça pourrait servir pour tronçonner vos roues dentées. - Code:
-
rem ============================================================================ rem Scie circulaire rem ============================================================================
picture 10 : full_space 10 : 2d_target_is 10
2d_pen_width 5 : Scie_Circulaire(250,200,150) ' 2d_pen_width 2 : Scie_Circulaire(50,100,30) ' 2d_pen_width 3 : Scie_Circulaire(500,300,50) end rem ============================================================================ ' xc,yc : centre de la scie circulaire ' r : rayon de le scie circulaire SUB Scie_Circulaire(xc,yc,r) dim_local x,y,rho,t degrees 2d_poly_from xc+r,yc for t = 0 to 360 rho = 1/cos(t-30*int(t/30)) : ' changer le 30 par 20 pour voir ... x = xc + r * rho * cos(t) : y = yc - r * rho * sin(t) 2d_poly_to x,y next t END_SUB
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Roues dentées Lun 9 Juil 2018 - 17:56 | |
| Alors là papydall, je suis scié ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Roues dentées Lun 9 Juil 2018 - 18:39 | |
| | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Roues dentées Mar 10 Juil 2018 - 9:14 | |
| - Marc a écrit:
Pour plus de précision, on peut utiliser des nombres à virgule pour affiner le dessin.
Des nombres à virgule pour exprimer les coordonnées des points ? Cela peut se faire avec FLTK ou OpenGL. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Roues dentées Mar 10 Juil 2018 - 10:05 | |
| - Jean_debord a écrit:
- Des nombres à virgule pour exprimer les coordonnées des points ? Cela peut se faire avec FLTK ou OpenGL.
Non Jean, bien sûr ce n'est pas pour les coordonnées des points mais pour les variables internes aux formules de calcul de la forme : p,a,r et z. | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Roues dentées Mar 10 Juil 2018 - 11:30 | |
| OK Avec OpenGL on définit les coordonnées des points sous forme de nombres réels, ce qui permet d'appliquer diverses transformations (rotations etc.) en évitant au maximum les erreurs d'arrondi. Ce n'est qu'à la fin, au moment d'afficher le graphique, que les coordonnées sont traduites en nombres de pixels. Cela permet des graphiques plus précis. | |
| | | mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: Roues dentées Jeu 19 Juil 2018 - 19:25 | |
| Bonsoir a tous @ jean Est il possible d'utiliser Open GL avec panoramic? Je n'ai rien vue passer! merci | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Roues dentées Sam 21 Juil 2018 - 10:40 | |
| Je n'ai rien vu passer non plus, et je ne crois pas que ce soit possible en Panoramic "pur". Il faudrait sans doute faire une DLL avec FreeBASIC ou Delphi. | |
| | | Contenu sponsorisé
| Sujet: Re: Roues dentées | |
| |
| | | | Roues dentées | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |