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 Sam 21 Juil 2018 - 16:57

» Roues dentées
par jean_debord Sam 21 Juil 2018 - 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 | 
 

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

Aller en bas 
AuteurMessage
papydall

avatar

Nombre de messages : 5980
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 - 17: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 - 18: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 : 236
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 - 8: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 : 5980
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 - 18: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 : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Dessine-moi une étoile ... ou un super-cercle   Mar 4 Juil 2017 - 20: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 : 5980
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 - 20: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 : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Dessine-moi une étoile ... ou un super-cercle   Mar 4 Juil 2017 - 20: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 : 5980
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 - 20: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 : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Dessine-moi une étoile ... ou un super-cercle   Mar 4 Juil 2017 - 20: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 : 5980
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: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
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!
» Nouveau périphérique: clavier super sympa!

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: