FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Planétarium virtuel.
par Pedro Alvarez Hier à 16:57

» Roues dentées
par jean_debord Hier à 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Rotation d'une figure de base

Aller en bas 
AuteurMessage
Parpaiun

avatar

Nombre de messages : 192
Age : 78
Localisation : HERAULT
Date d'inscription : 15/04/2015

MessageSujet: Rotation d'une figure de base   Jeu 25 Juin 2015 - 22:54

Et voici encore une de mes spécialités !

Code:
REM  Auteur: parpaiun
REM  Date-version: 25/06/2015
REM =====================================
'  Rien ne vous empêche de modifier les paramètres pour voir ce que ça donne !
dim amp,b,cx,cy,i,j,nc,px,py,rad,ray
dim x(360),y(360)
height 0,550
nc=4      :' Nombre de crêtes
amp=30    :' Amplitude de l'oscillation
ray=120   :' Rayon moyen de la figure
rad=acos(-1)/180
'
'  Figure de Base
cx=300: cy=250
for i=0 to 360
 b=amp*sin(i*nc*rad)
 x(i)=cx+(ray+b)*cos(i*rad)
 y(i)=cy+(ray+b)*sin(i*rad)
next i
'
' Contrôle de la figure de base
for i=0 to 360
 if i=0
   2D_POLY_FROM x(i),y(i)
  else
   2D_POLY_TO x(i),y(i)
 END_IF
next i
PAUSE 3000
cls
'
REM  On applique à cette figure une rotation circulaire
ray=80
for i=0 to 360 step 6
 for b=0 to 360
  px=x(b)+ray*cos(i*rad)
  py=y(b)+ray*sin(i*rad)
  if b=0
    2D_POLY_FROM px,py
   ELSE
    2D_POLY_TO px,py
  END_IF
 next b
next i

END

Allez, allez Papydall ! Fais mieux que ça s'il te plait ! Et vogue la galère, et yo ho ho! Et une bouteille de rhum !   lol!     lol!     lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sergeauze

avatar

Nombre de messages : 391
Age : 66
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: Rotation d'une figure de base   Jeu 25 Juin 2015 - 23:12

C'est une affaire qui.............tourne rond sunny
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
Jicehel

avatar

Nombre de messages : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Rotation d'une figure de base   Jeu 25 Juin 2015 - 23:30

Le résultat est chouette et du coup je t'ai mis un peu de couleur.

Code:
REM  Auteur: parpaiun
REM  Date-version: 25/06/2015
REM =====================================
'  Rien ne vous empêche de modifier les paramètres pour voir ce que ça donne !
dim amp,b,cx,cy,i,j,nc,px,py,rad,ray
dim x(360),y(360)
height 0,550
nc=4      :' Nombre de crêtes
amp=30    :' Amplitude de l'oscillation
ray=120  :' Rayon moyen de la figure
rad=acos(-1)/180
color 0,0,0,0
'
'  Figure de Base
cx=300: cy=250
for i=0 to 360 step 6
 b=amp*sin(i*nc*rad)
 x(i)=cx+(ray+b)*cos(i*rad)
 y(i)=cy+(ray+b)*sin(i*rad)
next i
'
' Contrôle de la figure de base
for i=0 to 360 step 6
 if i=0
  2D_POLY_FROM x(i),y(i)
  else
  2D_PEN_COLOR abs(x(i)-cx),abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2
  2D_POLY_TO x(i),y(i)
 END_IF
next i
PAUSE 500
cls
'
REM  On applique à cette figure une rotation circulaire
ray=80
for i=0 to 360 step 6
 for b=0 to 360 step 6
  px=x(b)+ray*cos(i*rad)
  py=y(b)+ray*sin(i*rad)
  if b=0
    2D_POLY_FROM px,py
  ELSE
    2D_PEN_COLOR abs(x(i)-cx),abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2
    2D_POLY_TO px,py
  END_IF
 next b
next i

END
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5980
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Rotation d'une figure de base   Ven 26 Juin 2015 - 0:55

Parpaiun a écrit:
Allez, allez Papydall ! Fais mieux que ça s'il te plait !

Une modification de ton code

Code:

REM  Auteur: parpaiun
REM  Date-version: 25/06/2015
REM =====================================
Init()
for i = 3 to 20 : Demarrer(i,30+10,120+80) : next i
caption 0,"Terminé"
print "    !!! That's All Folks !!!"
end
rem ============================================================================
SUB Init()
    dim i,cx,cy,rad,x(360),y(360)
    full_space 0
    cx = width(0)/2 : cy = height(0)/2 : rad=acos(-1)/180
    color 0,0,0,0 : 2d_pen_color 255,255,0
    font_color 0,255,0,0 : font_bold 0 : font_size 0,20
    caption 0,">ESC> pour arrêter"
END_SUB
rem ============================================================================
SUB Demarrer(nc,amp,ray)
    dim_local i,b
    2D_POLY_FROM  cx+ray,cy
    for i = 0 to 360
        b = amp * sin(i*nc*rad)
        x(i) = cx+(ray+b)*cos(i*rad) : y(i) = cy+(ray+b)*sin(i*rad)
        2D_POLY_TO x(i),y(i)
    next i
    Rotation()
    if key_down_code = 27 then Terminer()
END_SUB
rem ============================================================================
SUB Rotation()
    dim_local b,i,ray,px,py
    cls
    ray = 80
    for i = 0 to 360 step 6
        2D_POLY_FROM x(0)+ray*cos(i*rad), y(0)+ray*sin(i*rad)
        for b = 0 to 360 step 3
            px = x(b)+ray*cos(i*rad) : py = y(b)+ray*sin(i*rad)
        '    2d_pen_color mod(x(i),255), mod(y(i),255),mod(b,255)
            2D_POLY_TO px,py
        next b
    next i
    pause 1000
END_SUB
rem ============================================================================
SUB Terminer()
    Caption 0, "Programme arrêté par l'utilisateur"
    end
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Rotation d'une figure de base   Ven 26 Juin 2015 - 1:34

C'est excellent mais comme moi je préfère en multi couleur, ça donne ça

Code:
REM  Auteur: parpaiun
REM  Date-version: 25/06/2015
REM =====================================
Init()
for i = 3 to 20 : Demarrer(i,30+10,120+80) : next i
caption 0,"Terminé"
print "    !!! That's All Folks !!!"
end
rem ============================================================================
SUB Init()
    dim i,cx,cy,rad,x(360),y(360)
    full_space 0
    cx = width(0)/2 : cy = height(0)/2 : rad=acos(-1)/180
    color 0,0,0,0 :  font_color 0,255,0,0 : font_bold 0 : font_size 0,20
    caption 0,"<ESC> pour arrêter"
END_SUB
rem ============================================================================
SUB Demarrer(nc,amp,ray)
    dim_local i,b
    2D_POLY_FROM  cx+ray,cy
    for i = 0 to 360
        b = amp * sin(i*nc*rad)
        x(i) = cx+(ray+b)*cos(i*rad) : y(i) = cy+(ray+b)*sin(i*rad)
        2D_POLY_TO x(i),y(i)
    next i
    Rotation()
    if key_down_code = 27 then Terminer()
END_SUB
rem ============================================================================
SUB Rotation()
    dim_local b,i,ray,px,py
    cls
    ray = 80
    for i = 0 to 360 step 6
        2D_POLY_FROM x(0)+ray*cos(i*rad), y(0)+ray*sin(i*rad)
        for b = 0 to 360 step 3
            px = x(b)+ray*cos(i*rad) : py = y(b)+ray*sin(i*rad)
            2D_PEN_COLOR abs(x(i)-cx),abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2
            2D_POLY_TO px,py
        next b
    next i
    pause 1000
END_SUB
rem ============================================================================
SUB Terminer()
    Caption 0, "Programme arrêté par l'utilisateur"
    end
END_SUB
rem ============================================================================

Bonne nuit à tous et à tout à l'heure


Dernière édition par Jicehel le Ven 26 Juin 2015 - 8:06, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 50
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Rotation d'une figure de base   Ven 26 Juin 2015 - 2:33

Excellent !
Dommage qu'on ne puisse pas générer des économiseurs d'ecran avec Pano.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Minibug

avatar

Nombre de messages : 2979
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Rotation d'une figure de base   Ven 26 Juin 2015 - 6:03

C'est vraiment bluffant !

On dirait de la 3D. Bravo !! cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Jicehel

avatar

Nombre de messages : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Rotation d'une figure de base   Ven 26 Juin 2015 - 8:27

Une variante façon screensaver
Code:
REM  Auteur: parpaiun
REM  Date-version: 25/06/2015
REM =====================================
Init()
while 1 = 1
    i = int(rnd(21))
    Demarrer(i,30+10,120+80)
    cpt = cpt + 1 : if cpt = 3 then cls : cpt = 0
end_while
end
rem ============================================================================
SUB Init()
    dim i,cpt, cx,cy,rad,x(360),y(360)
    full_space 0
    rad=acos(-1)/180 : cx = -200 : cy = -200
    color 0,0,0,0 :  font_color 0,255,0,0 : font_bold 0 : font_size 0,20
    caption 0,"<ESC> pour arrêter"
END_SUB
rem ============================================================================
SUB Demarrer(nc,amp,ray)
    dim_local i,b, ocx, ocy
    ocx = cx
    while abs(ocx - cx) < 400
        cx = int(rnd (width(0)))
    end_while
    ocy = cy
    while abs(ocy - cy) < 400
        cy = int(rnd(height(0)))
    end_while
    ' 2D_POLY_FROM  cx+ray,cy
    for i = 0 to 360
        b = amp * sin(i*nc*rad)
        x(i) = cx+(ray+b)*cos(i*rad) : y(i) = cy+(ray+b)*sin(i*rad)
        ' 2D_POLY_TO x(i),y(i)
        if key_down_code = 27 then Terminer()
    next i
    Rotation()
END_SUB
rem ============================================================================
SUB Rotation()
    dim_local b,i,ray,px,py
    ray = 80
    for i = 0 to 360 step 6
        2D_POLY_FROM x(0)+ray*cos(i*rad), y(0)+ray*sin(i*rad)
        for b = 0 to 360 step 3
            px = x(b)+ray*cos(i*rad) : py = y(b)+ray*sin(i*rad)
            2D_PEN_COLOR abs(x(i)-cx),abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2
            2D_POLY_TO px,py
            if key_down_code = 27 then Terminer()
        next b
    next i
END_SUB
rem ============================================================================
SUB Terminer()
  caption 0,"Terminé"
  print "    !!! That's All Folks !!!"
  end
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Rotation d'une figure de base   Ven 26 Juin 2015 - 11:33

Une variante de la variante screensaver pour remplir plus l'écran
(codé rapidos au boulot car je l'avais dans la tête ce matin, mais je n'avais pas le temps avant de partir...)

Code:
REM  Auteur: parpaiun
REM  Date-version: 25/06/2015
REM =====================================
Init()
while 1 = 1
    i = int(rnd(20)) + 1
    Demarrer(i,30+10,120+80)
    cpt = cpt + 1 : if cpt = 5 then cls : cpt = 0
end_while
end
rem ============================================================================
SUB Init()
    dim i,cpt, cx,cy,rad,x(360),y(360)
    full_space 0
    rad=acos(-1)/180 : cx = -200 : cy = -200
    color 0,0,0,0 :  font_color 0,255,0,0 : font_bold 0 : font_size 0,20
    caption 0,"<ESC> pour arrêter"
END_SUB
rem ============================================================================
SUB Demarrer(nc,amp,ray)
    dim_local i,b, ocx, ocy
    ocx = cx
    while abs(ocx - cx) < 400
        cx = int(rnd (width(0)*0.75)+0.15*width(0))
    end_while
    ocy = cy
    while abs(ocy - cy) < 300
        cy = int(rnd(height(0)*0.75)+0.15*width(0))
    end_while
    ' 2D_POLY_FROM  cx+ray,cy
    for i = 0 to 360
        b = amp * sin(i*nc*rad)
        x(i) = cx+(ray+b)*cos(i*rad) : y(i) = cy+(ray+b)*sin(i*rad)
        ' 2D_POLY_TO x(i),y(i)
        if key_down_code = 27 then Terminer()
    next i
    Rotation()
END_SUB
rem ============================================================================
SUB Rotation()
    dim_local b,i,ray,px,py
    ray = 80
    for i = 0 to 360 step 6
        2D_POLY_FROM x(0)+ray*cos(i*rad), y(0)+ray*sin(i*rad)
        for b = 0 to 360 step 3
            px = x(b)+ray*cos(i*rad) : py = y(b)+ray*sin(i*rad)
            if cpt = 0 then 2D_PEN_COLOR abs(x(i)-cx),abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2
            if cpt = 1 then 2D_PEN_COLOR (abs(x(i)-cx)+abs(y(i) - cy))/2,abs(x(i)-cx),abs(y(i) - cy)
            if cpt = 2 then 2D_PEN_COLOR abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2, abs(x(i)-cx)
            if cpt = 3 then 2D_PEN_COLOR (abs(x(i)-cx)+abs(y(i) - cy))/2,(abs(x(i)-cx)+abs(y(i) - cy))/2, abs(x(i)-cx)
            if cpt = 4 then 2D_PEN_COLOR abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2,(abs(x(i)-cx)+abs(y(i) - cy))/2
            2D_POLY_TO px,py
            if key_down_code = 27 then Terminer()
        next b
    next i
END_SUB
rem ============================================================================
SUB Terminer()
  caption 0,"Terminé"
  print "    !!! That's All Folks !!!"
  end
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 50
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Rotation d'une figure de base   Ven 26 Juin 2015 - 11:59

Bravo Jicehel !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Jicehel

avatar

Nombre de messages : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Rotation d'une figure de base   Ven 26 Juin 2015 - 13:48

et Parpaiun et Papydall car ce n'est qu'une variante de leurs codes Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5980
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Rotation d'une figure de base   Ven 26 Juin 2015 - 14:17

Il y a toujours beaucoup plus d’idées dans plusieurs têtes que dans une seule !

A propos, Parpaiun n'a pas soufflé mot depuis son partage du code!

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5928
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Rotation d'une figure de base   Ven 26 Juin 2015 - 22:49

Désolé de vous spammer mais j'ai modifier ma modification pour revenir à la pureté de ces belles lignes.
En fait une seule image en rotation c'est plus joli et l'on joue sur le changement de forme et de principe de colorisation.
Bon après j’arrête les variantes, mais j'aime vraiment ces tracés fait par Parpaiun / Papydall et j'aime bien les regarder.
Code:
REM  Auteur: parpaiun
REM  Date-version: 25/06/2015
REM =====================================
Init()
while 1 = 1
    i = int(rnd(20)) + 1
    Demarrer(i,20 + 5 * i,60 + 15*i)
    pause 3000 : cls
end_while
end
rem ============================================================================
SUB Init()
    dim i, cx,cy,rad,x(360),y(360)
    full_space 0
    rad=acos(-1)/180 : cx = -200 : cy = -200
    color 0,0,0,0 :  font_color 0,255,0,0 : font_bold 0 : font_size 0,20
    caption 0,"<ESC> pour arrêter"
END_SUB
rem ============================================================================
SUB Demarrer(nc,amp,ray)
    dim_local i,b, ocx, ocy
    ocx = cx
    while abs(ocx - cx) < 400
        cx = int(rnd (width(0)*0.55)+0.2*width(0))
    end_while
    ocy = cy
    while abs(ocy - cy) < 300
        cy = int(rnd(height(0)*0.55)+0.2*width(0))
    end_while
    ' 2D_POLY_FROM  cx+ray,cy
    for i = 0 to 360
        b = amp * sin(i*nc*rad)
        x(i) = cx+(ray+b)*cos(i*rad) : y(i) = cy+(ray+b)*sin(i*rad)
        ' 2D_POLY_TO x(i),y(i)
        if key_down_code = 27 then Terminer()
    next i
    Rotation()
END_SUB
rem ============================================================================
SUB Rotation()
    dim_local b,i,ray,px,py, c
    ray = 80
    c = abs(int(rnd(5) - 0.5))
    for i = 0 to 360 step 6
        2D_POLY_FROM x(0)+ray*cos(i*rad), y(0)+ray*sin(i*rad)
        for b = 0 to 360 step 3
            px = x(b)+ray*cos(i*rad) : py = y(b)+ray*sin(i*rad)
            if c = 0 then 2D_PEN_COLOR abs(x(i)-cx)/2,abs(y(i) - cy)/2,(abs(x(i)-cx)+abs(y(i) - cy))/3
            if c = 1 then 2D_PEN_COLOR (abs(x(i)-cx)+abs(y(i) - cy))/3,abs(x(i)-cx)/2,abs(y(i) - cy)/2
            if c = 2 then 2D_PEN_COLOR abs(y(i) - cy)/2,(abs(x(i)-cx)+abs(y(i) - cy))/3, abs(x(i)-cx)/2
            if c = 3 then 2D_PEN_COLOR (abs(x(i)-cx)+abs(y(i) - cy))/3,(abs(x(i)-cx)+abs(y(i) - cy))/3, abs(x(i)-cx)/2
            if c = 4 then 2D_PEN_COLOR abs(y(i) - cy)/2,(abs(x(i)-cx)+abs(y(i) - cy))/3,(abs(x(i)-cx)+abs(y(i) - cy))/3
            2D_POLY_TO px,py
            if key_down_code = 27 then Terminer()
        next b
    next i
END_SUB
rem ============================================================================
SUB Terminer()
  caption 0,"Terminé"
  print "    !!! That's All Folks !!!"
  end
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Rotation d'une figure de base   

Revenir en haut Aller en bas
 
Rotation d'une figure de base
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Rotation d'une figure de base
» [résolu]Problèms Divers ....rotation ...carroussel, ect ..
» base camp dangereux en montagne !!?
» on est en base neuf!
» [Résolu] Sortir de l'écran de base

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les inutilitaires-
Sauter vers: