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 |
|
|
| Manipulation de polygones | |
| | Auteur | Message |
---|
sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Manipulation de polygones Mer 24 Juin 2015 - 14:38 | |
| C'est comme un fil rouge chez moi C'est un essai j'ai pas su y adapter le buffer Il faudrait encore quelques reglages - Code:
-
iF 1 = 2 ............................................. LE FIL ROUGE manipulations de polygones ............................................. * touche w pour rafraichir l'ecran * sinon possibilite de decocher CLS (vers la ligne 80) * le hint vous donne la fonction des curseurs On commence par celui du milieu * escape pour sortir ............................................. END_IF
dim x0,y0,r,Px,Py,j%,n%,Pi,a,a0,a1,h,w ,w$ ,w1,w12 Pi = 4*ATN(1) ' w=57 rem coordonnées du centre x0=650 Y0=500 width 0,1500 height 0,1000 2d_pen_width 3 rem rayon r=350 color 0,255,140,35 rem nombre de côtés n%=4 ' a1 =( 2*Pi/n%): ' angle de rotation de chaque côté
rem angle de début a0=1/(2*Pi) iF 1 = 2 picture 10 :width 10,1200 :height 10, 1000:' 2d_target_is 10:left 10,100 END_IF
track_bar 12:min 12,0.1:max 12,360:top 12,500:hint 12,"autour de Z"
track_bar 4:min 4,1:max 4,25:top 4,300:hint 4,"nombre de cotes"
track_bar 3:min 3,1:max 3 ,450:top 3 ,200:hint 3,"profondeur "
track_bar 2:min 2,10: max 2, 500: top 2,400 :hint 2,"autourde l'axe des y" position 2,500 width 2,200
track_bar 1:min 1,10:max 1,500:top 1,100:hint 1,"autour de l'axe des x " position 1,500 width 1,200 rem xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx repeat ' a0=w12/2*Pi a0=10*w12/360 w =position(1) w1 =position(2) r= position(3) n%= position (4) w12= position(12) rem ................................................ Px = (r-w1) * Cos(a0) + x0 Py = (r-w) * Sin(a0) + y0 2D_poly_from px,py rem ........................................... a = a0 For j% = 0 To n% a1 =( 2*Pi/n%) a = a + a1 rem ....................................... Px = (r-w1)*Cos(a) + x0 Py = (r-w)*Sin(a) + y0 2d_circle px,py,5 2D_poly_to Px, Py Next j%
display ' 2d_pen_color 255,0,rnd(255) ' wait 250 a0 = a0+1/52
if scancode= 27 then end print_locate 1010,10 print position (1) if scancode=87 then cls ' cls until scancode=27 terminate end | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Manipulation de polygones Mer 24 Juin 2015 - 16:12 | |
| Excellent Sergause, toutefois, je trouvais inutile de faire une boucle infini s'il n'y rien a faire alors j'ai un peu modifié ton programme et à mon vis pour cet usage le double buffer n'est pas utile. - Code:
-
' ............................................. ' LE FIL ROUGE ' manipulations de polygones ' ............................................. ' * touche w pour rafraichir l'ecran ' * sinon ' possibilite de decocher CLS (vers la ligne 80) ' * le hint vous donne la fonction des curseurs ' On commence par celui du milieu ' * escape pour sortir ' .............................................
dim x0,y0,r,Px,Py,j%,n%,Pi,a,a0,a1,h,w ,w$ ,w1,w5
label change, touche
Pi = 4*ATN(1) ' w=57 width 0,1500 : height 0,1000 : rem dimensionnement de la fenêtre principale color 0,255,140,35
x0=width(0)/2 : Y0=height(0)/2 : rem coordonnées du centre
2d_pen_width 3
r=350 : rem rayon
n%=4 : rem nombre de côtés
a0=1/(2*Pi) : rem angle de début
track_bar 5:min 5,0.1:max 5,360:top 5,500:hint 5,"autour de Z" track_bar 4:min 4,1:max 4,25:top 4,300: position 4,n% : hint 4,"nombre de cotes" track_bar 3:min 3,1:max 3 ,450:top 3 ,200:hint 3,"profondeur " track_bar 2:min 2,10: max 2, 500: top 2,400 :hint 2,"autourde l'axe des y" position 2,500 : width 2,200 track_bar 1:min 1,10:max 1,500:top 1,100:hint 1,"autour de l'axe des x " position 1,500 : width 1,200 gosub change for n% = 1 to 5 : on_change n%,change : next n% rem xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx end
touche: if key_down_code = 27 then terminate return
change: cls a0=10*w5/360 w =position(1) w1 =position(2) r= position(3) n%= position (4) w5= position(5) Px = (r-w1) * Cos(a0) + x0 : Py = (r-w) * Sin(a0) + y0 2D_poly_from px,py a = a0 For j% = 0 To n% a1 =( 2*Pi/n%) a = a + a1 Px = (r-w1)*Cos(a) + x0 : Py = (r-w)*Sin(a) + y0 2d_circle px,py,5 : 2D_poly_to Px, Py Next j%
display a0 = a0+1/52 ' print_locate 1010,10 : print position (1) wait 5 return | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Manipulation de polygones Mer 24 Juin 2015 - 17:27 | |
| merci Jicehel Ta programmation est plus structurée et efficace que la mienne Je fais dans le linéaire et la boucle c'est mon moteur j'aime quand ça bouge ! je me suis souvenu de l'astuce de Klaus qui permet de copier de long textes dans un programme sans REM ou ' | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Manipulation de polygones Mer 24 Juin 2015 - 18:18 | |
| Bravo, Sergeause.
C'est original comme manière de faire.
Au passage, tu m'a fait découvrir que l'on pouvais utiliser l' * à la place rem.
A+ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Manipulation de polygones Mer 24 Juin 2015 - 18:29 | |
| Détrompes toi Jean Claude : Le * ne remplace pas le REM. C’est une astuce Klaussienne pour simuler un REM sur tout un bloc de code.
Comme le test IF 1 = 2 est faux, Panoramic va ignorer purement et simplement toutes les commandes jusqu’au END_IF. C'est comme si on a mis des REM au début de ces commandes.
C’est une excellente astuce pour REMer toute une partie du code lors de la mise au point du programme.
@Sergeauze
Bonne idée, ce petit code. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Manipulation de polygones Mer 24 Juin 2015 - 19:02 | |
| Ben, je viens d'apprendre quelque chose. | |
| | | Contenu sponsorisé
| Sujet: Re: Manipulation de polygones | |
| |
| | | | Manipulation de polygones | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |