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
» I Love You
par JL35 Hier à 16:25

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Mer 18 Oct 2017 - 18:08

» mise a jour calculatrice
par joeeee2017 Mer 18 Oct 2017 - 15:57

» [solved] 3D_LINE How to ?
par Jicehel Mer 18 Oct 2017 - 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Mar 17 Oct 2017 - 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

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

Partagez | 
 

 Dessine-moi une étoile ... ou un super-cercle

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
papydall

avatar

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

MessageSujet: Dessine-moi une étoile ... ou un super-cercle   Lun 3 Juil 2017 - 18:18

Il m’a dit « dessiner-moi une étoile, ‘please’  »
Pour son ‘please’ (ir), je lui offre quelques centaines.
Régale-toi, ami Panoramicien !

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 ============================================================================


NB : Pour arrêter la torture, appuyer sur <ESC>


Dernière édition par papydall le Mar 4 Juil 2017 - 19:36, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Ouf_ca_passe

avatar

Nombre de messages : 197
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Défi de la quadrature du cercle    Mar 4 Juil 2017 - 9:31

Ne quitte pas le forum, Papydall, parce que je ne me suis pas émerveillé assez vite de ton programme de feu d'artifice d'étoiles pour les fêtes nationales.

@ Papydall et aux autres 3Dpanistes

Sauriez-vous relever le défi de la quadrature du cercle en 3D ?
Un morphing 2D serait accepté aussi.

https://www.youtube.com/watch?v=G7zsR1J-Xk8

Merci pour vos réponses
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Dessine-moi une étoile ... ou un super-cercle   Mar 4 Juil 2017 - 19:24

Ouf_ça_passe_ou_ça_casse a écrit:
Ne quitte pas le forum, Papydall, …

Oh, rassure-toi. Je n’ai pas l’intention de le quitter de sitôt !
Citation :
Sauriez-vous relever le défi de la quadrature du cercle



La quadrature du cercle :
Disons-le tout de suite et tout haut : la quadrature du cercle est IMPOSSIBLE !
Mais d’abord, de quoi parle-t-on ?
Soit un cercle de rayon égale à 1.
La superficie du cercle est A = pi*r*r = pi*1*1 = pi ≈ 3.14159265359. . . .
Peut-on dessiner un carré de la même superficie ?
La réponse est non, pour la simple raison que la racine carré de pi n’existe pas !
Pi est un nombre transcendant, c’est-à-dire qu’il contient autant de décimales que l’on veut : aussi loin que l’on va, ça ne s’arrête jamais.

C’est ici que ma science s’arrête !
Par contre, sur le SUPER-CERCLE, j’en sais un chouia.

En voilà, c'est gratuit !

Code:

rem ============================================================================
rem                       Le super-cercle
rem ============================================================================
rem             Equation paramétrique de la super-ellipse
rem         _______________________________________________
rem        |                                               |
rem        |  x = power(abs(cos(t)),2/n) * a * sgn(cos(t)) |
rem        |  y = power(abs(sin(t)),2/n) * b * sgn(sin(t)) |
rem        |  -------------------------------------------- |
rem        |  n, a, b : nombres positifs                   |
rem        |  t : angle en radians variant de 0 à 2*pi     |
rem        |  Si b = a, on a affaire à un super-cercle     |
rem        |_______________________________________________|
rem
rem
rem ============================================================================

font_bold 0 : font_color 0,0,0,255
print_locate 5,10
print "Ce ne sont pas des carrés. Ce sont des super-cercles, même si ça ressemble beaucoup à des carrés"

Super_cercle(020,005)
Super_cercle(050,010)
Super_cercle(100,020)
Super_cercle(150,050)
Super_Cercle(200,500)

end
rem ============================================================================
' Paramètres :
' a : demi-diamètre
' n : détermine la nature du super-cercle(hypo ou hyper-cercle) et sa forme
' Plus la valeur de n augmente, plus la courbe obtenue tend vers un cercle.

SUB Super_cercle(a,n)
    dim_local p,t,x,y,xc,yc,w,h
    p = pi/180
    w = width(0) : h = height(0) : xc = w/2 : yc = h/2
    xc = width_client(0)/2 : yc = height_client(0)/2+10
     2d_poly_from xc + a,yc
'    2d_pen_width 2    
    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) * a * sgn(sin(t))
        2d_poly_to xc+x,yc+y
    next t
    2d_flood xc-a+10,yc,255,255,0
END_SUB
rem ============================================================================

Bon, ça permet de faire des rectangles à coins arrondis.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

Nombre de messages : 5040
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Dessine-moi une étoile ... ou un super-cercle   Mar 4 Juil 2017 - 21:11

bonsoir,

Papydall a écrit:
.... la racine carré de pi n’existe pas !
Pi est un nombre transcendant, c’est-à-dire qu’il contient autant de décimales que l’on veut : aussi loin que l’on va, ça ne s’arrête jamais.

Jean Claude à pioché sur internet et donc a écrit:
La racine carrée de PI est d'environ 1.772453850905516027298167483341 (arrondie à la 30ème décimale). On ne peut pas donner toutes les décimales car PI étant irrationnel, toute opération sur ce nombre donne un résultat irrationnel, c'est-à-dire, qu'il a un nombre infini de décimales.

Pi est comme l'univers, il est infini...

Coté Panoramic, le feu d’artifice d'étoiles me plait beaucoup, le visuel est assez jolie surtout avec un fond noir (j'ai testé).

JJn4, a fait il y a longtemps un code en Panoramic qui simulait un feu d’artifice que j'avais trouvé sympa (désolé je ne réussi pas à retrouver le sujet).

Papydall est à mon avis bien placé pour nous en préparer un pour notre fête nationale du 14 juillet. Very Happy

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

avatar

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

MessageSujet: Re: Dessine-moi une étoile ... ou un super-cercle   Mar 4 Juil 2017 - 21:21

Pour ceux qui aiment les formes arrondies  tongue , voici une autre façon de faire des rectangles à coins arrondis.

Code:

rem ============================================================================
rem    Super_Ellipse ou rectangle à coins arrondies
rem ============================================================================
dim scr_x,scr_y, mx,my
scr_x = width_client(0) : scr_y = height_client(0) : mx = scr_x/2 : my = scr_y/2
picture 10 : full_space 10 : 2d_target_is 10
Super_Ellipse(200,150,10)
end
rem ============================================================================
SUB Super_Ellipse(a,b,n)
    dim_local y(a),x
    y(0) = b : y(a) = 0
    2d_pen_color 255,0,0 : 2d_poly_from mx,my-y(0)
    for x = 1 to a-1
        y(x) = Int(Exp(Log(1 - power((x / a) , n)) / n ) * b )
        2d_poly_to mx + x, my - y(x) : display
    Next x
    For x = a To 0 Step -1 : 2d_poly_to mx + x, my + y(x) : Next x
    For x = 0 To a : 2d_poly_to mx - x, my + y(x) : Next x
    For x = a To 0 Step -1 : 2d_poly_to mx - x, my - y(x) : Next x
    2d_flood mx,my,255,0,0
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

Nombre de messages : 5040
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Dessine-moi une étoile ... ou un super-cercle   Mar 4 Juil 2017 - 21:25

cheers

J'avais le code sur un vieux disque-dur,
Code:
rem ' Feu d'artifice - Version 2
dim c1 , c2 , c3 , f , g , h , i , j , k , x , y
k=1 : f=1
height 0,500
caption 0,"FEU D'ARTIFICE - Cliquez sur le ciel pour arrêter"
color 0,0,0,0 : display
sound 1
for g=1 to 200
 c1=rnd(155)+100 : c2=rnd(155)+100 : c3=rnd(155)+100
 h=int(rnd(4))+1 : y=int(rnd(300))+50 : k=0-k
 for i=500 to y step -1
  2d_pen_color c1,c2,c3
  2d_point 300+10*log(i)*h*k,i
  for j=1 to 500 : next j : ' on peut changer le 500, ça dépend de la vitesse des ordinateurs
  2d_point 300+10*log(i)*h*k,i
 next i
 for j=1 to 3000
  2d_pen_color 0,0,0
  i=int(rnd(500-y))+y
  2d_point 300+10*log(i)*h*k,i
 next j
 x=300+10*log(y)*h*k
 2d_pen_color c1,c2,c3
 for i=1 to 100
  for j=1 to int(rnd(4))+1
  k=0-k
  next j
  for j=1 to int(rnd(4))+1
  f=0-f
  next j
  if g/h=int(g/h)
  2d_pen_color rnd(155)+100,rnd(155)+100,rnd(155)+100
  end_if
  2d_line x,y,x+int(rnd(150))*k,y+int(rnd(150))*f
 next i
 i=int(rnd(3))+1
 if file_exists("Explo-"+str$(i)+".wav")=1
  file_load 1,"Explo-"+str$(i)+".wav"
  play 1
 end_if
 wait 500
 cls
 if clicked(0)=1 then exit_for
next g
terminate

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

avatar

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

MessageSujet: Re: Dessine-moi une étoile ... ou un super-cercle   Mar 4 Juil 2017 - 21:33

C'est ici

A cette époque je n'étais pas né, moi ! Crying or Very sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

Nombre de messages : 5040
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Dessine-moi une étoile ... ou un super-cercle   Mar 4 Juil 2017 - 21:43

Merci Papydall,

je ne comprend pas pourquoi la recherche du forum n'a rien trouvé pour moi .. BREF !

Le code que j'ai mis plus haut ne comporte pas le bouquet final.

Code:
rem ' Feu d'artifice
dim c1 , c2 , c3 , f , g , h , i , j , k , x , y
k=1 : f=1
height 0,500
caption 0,"FEU D'ARTIFICE - Cliquez sur le ciel pour arrêter"
color 0,0,0,0 : display
sound 1
for g=1 to 200
 c1=rnd(155)+100 : c2=rnd(155)+100 : c3=rnd(155)+100
 h=int(rnd(4))+1 : y=int(rnd(300))+50 : k=0-k
 for i=500 to y step -1
  2d_pen_color c1,c2,c3
  2d_point 300+10*log(i)*h*k,i
  for j=1 to 500 : next j : ' on peut changer le 500, ça dépend de la vitesse des ordinateurs
  2d_point 300+10*log(i)*h*k,i
 next i
 for j=1 to 3000
  2d_pen_color 0,0,0
  i=int(rnd(500-y))+y
  2d_point 300+10*log(i)*h*k,i
 next j
 x=300+10*log(y)*h*k
 2d_pen_color c1,c2,c3
 for i=1 to 100
  for j=1 to int(rnd(4))+1
  k=0-k
  next j
  for j=1 to int(rnd(4))+1
  f=0-f
  next j
  if g/h=int(g/h)
  2d_pen_color rnd(155)+100,rnd(155)+100,rnd(155)+100
  end_if
  2d_line x,y,x+int(rnd(150))*k,y+int(rnd(150))*f
 next i
 i=int(rnd(3))+1
 if file_exists("Explo-"+str$(i)+".wav")=1
  file_load 1,"Explo-"+str$(i)+".wav"
  play 1
 end_if
 wait 500
 cls
 if clicked(0)=1 then exit_for
next g
for g=1 to 12
 x=int(rnd(500))+1 : y=int(rnd(400))+1
 for i=1 to 100
  for j=1 to int(rnd(4))+1
  k=0-k
  next j
  for j=1 to int(rnd(4))+1
  f=0-f
  next j
  2d_pen_color rnd(155)+100,rnd(155)+100,rnd(155)+100
  2d_line x,y,x+int(rnd(150))*k,y+int(rnd(150))*f
 next i
next g
if file_exists("Explo-3.wav")=1
 file_load 1,"Explo-3.wav"
 play 1
 wait 2500
end_if
terminate

Papydall a écrit:
A cette époque je n'étais pas né, moi !

HEU... tu es sur de ça... Very Happy

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

avatar

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

MessageSujet: Re: Dessine-moi une étoile ... ou un super-cercle   Mar 4 Juil 2017 - 22:34

Jean Claude qui ne sais pas comment chercher a écrit:
je ne comprend pas pourquoi la recherche du forum n'a rien trouvé pour moi .. BREF !

Pourtant
c'est simple:
 

En cliquant
sur Go:
 


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




MessageSujet: Re: Dessine-moi une étoile ... ou un super-cercle   

Revenir en haut Aller en bas
 
Dessine-moi une étoile ... ou un super-cercle
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» PC super lent
» ILM en super 8 à l'epoque de SW
» Super Laguna
» Site d'échantillons super!
» « I am SUPERTRAMP ; and you ARE super apple. »

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: