FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Une calculatrice en une ligne de programme
Etoile Emptypar jean_debord Aujourd'hui à 8:01

» Gestion d'un système client-serveur.
Etoile Emptypar Pedro Hier à 19:31

» Les maths du crocodile
Etoile Emptypar jean_debord Hier à 10:37

» Naissance de Crocodile Basic
Etoile Emptypar jean_debord Hier à 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Etoile Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Etoile Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Etoile Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Etoile Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
Etoile Emptypar leclode Dim 21 Avr 2024 - 18:09

» trop de fichiers en cours
Etoile Emptypar Marc Dim 21 Avr 2024 - 2:41

» 2D_fill_color(résolu)
Etoile Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Etoile Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Etoile Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Etoile Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

» Bataille-navale
Etoile Emptypar jjn4 Mer 3 Avr 2024 - 14:08

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment : -28%
Brandt LVE127J – Lave-vaisselle encastrable 12 ...
Voir le deal
279.99 €

 

 Etoile

Aller en bas 
2 participants
AuteurMessage
Marc

Marc


Nombre de messages : 2379
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Etoile Empty
MessageSujet: Etoile   Etoile EmptyDim 1 Avr 2018 - 21:00

Bonjour à tous !

Une p'tite étoile...

Code:
' ------------------------------------------------------------------------------
'  PANORAMIC Star - Etoile
'  Marc - April 2018 - Panoramic v0.9.28.i16
'  http://panoramic-language.pagesperso-orange.fr/French/index.html
'  http://panoramic.top-forum.net
' ------------------------------------------------------------------------------
Init()
Star(150)
Edges()
Colorize(150)
END
' ------------------------------------------------------------------------------
SUB Init()
    WIDTH 0,500
    HEIGHT 0,500
    LEFT 0,(SCREEN_X-WIDTH(0))/2
    TOP 0,(SCREEN_Y-HEIGHT(0))/2
    DIM x_center%, y_center%
    x_center% = WIDTH_CLIENT(0)/2
    y_center% = HEIGHT_CLIENT(0)/2
    PICTURE 1
    FULL_SPACE 1
    2D_TARGET_IS 1
    COLOR 1,50,50,90
    DIM p%(10,1)
    DEGREES
END_SUB
' ------------------------------------------------------------------------------
SUB Star(r%)
    DIM_LOCAL i%,j%,x,y
    j% = 0
    FOR i% = 0 to 360 STEP 36
        IF MOD(i%,72) = 0
            x = COS(i%) * r% / 2.62 + x_center%
            y = SIN(i%) * r% / 2.62 + y_center%
            p%(j%,0) = x
            p%(j%,1) = y
        ELSE
            x = COS(i%) * r% + x_center%
            y = SIN(i%) * r% + y_center%
            p%(j%,0) = x
            p%(j%,1) = y
        END_IF
        j% = j% + 1
    NEXT i%
    2D_PEN_COLOR 200,180,0
    2D_POLY_FROM p%(0,0),p%(0,1)
    FOR j% = 0 to 10
        2D_POLY_TO p%(j%,0),p%(j%,1)
    NEXT j%
END_SUB
' ------------------------------------------------------------------------------
SUB Edges()    
    DIM_LOCAL i%
    FOR i% = 1 to 10
        2D_LINE p%(i%,0),p%(i%,1),x_center%,y_center%
    NEXT i%
END_SUB
' ------------------------------------------------------------------------------
SUB Colorize(r%)    
    DIM_LOCAL x,y,i%,j%
    j%=0
    FOR i% = 18 to 378 STEP 36
        x=COS(i%) * r% / 2.62 + x_center%
        y=SIN(i%) * r% / 2.62 + y_center%
        p%(j%,0) = x
        p%(j%,1) = y
        j% = j% + 1
    NEXT i%
    2D_FLOOD p%(0,0),p%(0,1),255,255,0
    2D_FLOOD p%(1,0),p%(1,1),240,180,0
    2D_FLOOD p%(2,0),p%(2,1),255,200,0
    2D_FLOOD p%(3,0),p%(3,1),255,255,0
    2D_FLOOD p%(4,0),p%(4,1),240,180,0
    2D_FLOOD p%(5,0),p%(5,1),255,255,0
    2D_FLOOD p%(6,0),p%(6,1),255,255,0
    2D_FLOOD p%(7,0),p%(7,1),255,200,0
    2D_FLOOD p%(8,0),p%(8,1),255,255,0
    2D_FLOOD p%(9,0),p%(9,1),240,180,0
END_SUB

Etoile 180
Revenir en haut Aller en bas
papydall

papydall


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

Etoile Empty
MessageSujet: Re: Etoile   Etoile EmptyDim 1 Avr 2018 - 21:40

Bravo Marc pour cette Star.
Je te propose d’indiquer DEGREES dans la SUB Star(r%) plutôt que dans la SUB Init().
Une SUB doit être autonome.
Supposons que quelqu’un veuille récupérer le code du tracé de l’étoile et l’utiliser dans son programme, il n’est pas évident qu’il a initialisé son programme en indiquant qu’il utilise de degrés et non des radians.
Tu vois bien ce que je vois.

Et pour participer à la fête des étoiles, voici mon code

Code:

rem ============================================================================
rem                              Etoiles
rem ============================================================================

Init()
Que_Le_Spectacle_Commence()
 
end
rem ============================================================================
SUB Init()
    dim CX,CY           : ' centre de l'étoile
    dim Rayon           : ' rayon de l'étoile  
    dim Nbranche        : ' nombre de branches de l'étoile
    dim resX,resY       : ' Résolution de l'écran
    dim nbr : nbr = 500 : ' Nombre d'étoiles
    dim etoile(nbr,2)   : ' Tableau des coordonnées des centres des étoiles
    dim r,g,b           : ' Composantes de la couleur du tracé
    full_space 0 : picture 10 : full_space 10
    2d_target_is 10 : color 10, 255, 255, 196 : ' Jaune pale
    resX = width_client(10) : resY = height_client(10)
    alpha 20 : font_color 20,0,0,255 : font_size 20,50 : font_name 20,"arial"
    top 20,200 : left 20,400 : caption 20,"That's all folks !" : hide 20
END_SUB
rem ============================================================================
SUB CalculerEoile(CX, CY, Rayon, Nbranche , r, g, b)
    dim_local i, prof, CentreX, CentreY, Angle
    Prof = int(Rayon + rnd(Rayon + 120)) : ' prodondeur des branches de l'étoile aléa entre Rayon et Rayon + 120
    for i = 0 to (2 * Nbranche - 1)
        Angle = i * PI / Nbranche        : ' angle au sommet
        if Odd(i) > 0                    : ' parité des sommets
           CentreX = CX + int(Rayon * (Rayon - Prof) * cos(Angle) / Rayon) : ' introduction du paramètre Prof
           CentreY = CY + int(Rayon * (Rayon - Prof) * sin(Angle) / Rayon) : ' pour la prodondeur des branches
        else
           CentreX = CX + int(cos(Angle) * Rayon)
           CentreY = CY + int(sin(Angle) * Rayon)
        end_if
        etoile(i,1) = CentreX : etoile(i,2) = CentreY : ' stockage de la série de points
    next i
    DessinerEtoile(Nbranche)
END_SUB
rem ============================================================================
SUB DessinerEtoile(Nbranche)
    dim_local i
    2d_pen_color r,g,b : 2d_poly_from etoile(1,1) , etoile(1,2)
    for i = 0 to 2*Nbranche-1 : 2d_poly_to etoile(i,1) , etoile(i,2) : next i
    2d_poly_to etoile(0,1) , etoile(0,2)
    ' 2d_flood cx,cy, r,g,b
END_SUB
rem ============================================================================
SUB Que_Le_Spectacle_Commence()
    dim_local n
    n = 0
    2d_pen_width 2
    repeat
        n = n + 1
        Cx = int(rnd(ResX)) : CY = int(rnd(ResY)) : Rayon = int(5+rnd(100))
        Nbranche = int(5+rnd(21)) : ' Nombre des branches de l'étoile de 5 à 25
        r = int(rnd(256)) : g = int(rnd(256)) : b = int(rnd(256)) : ' Couleur aléatoire
        CalculerEoile(CX, CY, Rayon, Nbranche , r, g, b)
        display : pause 200  
        if mod(n,51) = 0 : ' effacement pour aérer la toile
           pause 1000
           color 10, 255, 255, 196 : ' couleur du fond jaune pale
        end_if
        caption 0, str$(n) + "/ " + str$(nbr) + "... <ESC> pour arrêter ..."        
     until (n = nbr) or scancode = 27
     show 20
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


Nombre de messages : 2379
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Etoile Empty
MessageSujet: Re: Etoile   Etoile EmptyDim 1 Avr 2018 - 21:59

Merci Papydall pour cette pluie d'étoiles !

Un véritable feu d'artifice !

Citation :
Une SUB doit être autonome.
Merci du conseil, j’essaierai de mettre en application dans mes futures SUBs.
Revenir en haut Aller en bas
Contenu sponsorisé





Etoile Empty
MessageSujet: Re: Etoile   Etoile Empty

Revenir en haut Aller en bas
 
Etoile
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Dessine-moi une étoile ... ou un super-cercle

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: