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
» Logiciel de planétarium.
 Générateur de  paysages Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
 Générateur de  paysages Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
 Générateur de  paysages Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
 Générateur de  paysages Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
 Générateur de  paysages Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
 Générateur de  paysages Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
 Générateur de  paysages Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
 Générateur de  paysages Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
 Générateur de  paysages Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
 Générateur de  paysages Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
 Générateur de  paysages Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
 Générateur de  paysages Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
 Générateur de  paysages Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
 Générateur de  paysages Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
 Générateur de  paysages Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G Double SIM à 599€
599 €
Voir le deal

 

  Générateur de paysages

Aller en bas 
+5
Minibug
Jean Claude
Yannick
Jicehel
papydall
9 participants
AuteurMessage
papydall

papydall


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

 Générateur de  paysages Empty
MessageSujet: Générateur de paysages    Générateur de  paysages EmptySam 22 Aoû 2015 - 19:12

Du Panoramic, rien que du panoramic!

 Générateur de  paysages Sans_t16

Code:

rem ============================================================================
rem                  Landscape_Generator.bas
rem                  Générateur de  paysages
rem                      Par Papydall
rem ============================================================================
rem Pour des chaînes de montagnes normales, utiliser startval1 = 256 et startval2 = 2
rem Pour des paysages étranges utiliser startval1 = 500 et startval2 = 6
rem Jouez avec ces paramètres pour essayer des dunes ou des paysages marins
rem ============================================================================

Init()
Draw_Mountain()
caption 20,"!!! *** A D M I R E Z   C E   P A Y S A G E *** !!!"

end
rem ============================================================================
SUB Init()
    dim w : w = screen_x *.8
    dim h : h = screen_y *.8
    dim range(4096)
    dim lowr : lowr = 10
    dim col  : col  = 240 : ' 200
    dim delta_col : delta_col = 40
    dim rand : rand = rnd(1)
    dim lowmount  : lowmount  = 0
    dim startval1 : startval1 = 256 : ' 500
    dim startval2 : startval2 = 2   : ' 6
    dim newval1, newval2, amplitude, frequence, oldx, oldrange
    dim lacr, lacg, lacb, decrease, a, seed, k,sw
    if rand < .5 then sw = 0 : else : sw = 1
    full_space 0 : color 0,220,180,220 : caption 0,"Générateur de paysages par Papydall"
    picture 10 : width 10,w : height 10,h : top 10,(height(0) - h)/2 : left 10,(width(0)-w)/2
    color 10,200,200,255 : 2d_target_is 10
    alpha 20 : top 20,20 : left 20,w/3: font_bold 20 : font_size 20,24
    caption 20,"V E U I L L E Z   P A T I E N T E R ..... "
END_SUB
rem ============================================================================
' Dessiner 6 chaînes de montagnes
SUB Draw_Mountain()
    dim_local n, inc, i
    for n = 1 to 6
        pause 1 : newval1 = startval1 : newval2 = startval2
' Chaque chaîne de montagnes est produite par 6 fonctions "Bruit de Perlin"
' avec diminution de l'amplitude et croissance de la fréquence
       for inc = 1 to 6
           newval1 = newval1/2 : newval2 = newval2*2 : k = 0 : seed = rnd(1)
           amplitude = newval1 : frequence = newval2 : oldx = 0 : Perlin()
       next inc
' Dessiner la chaîne de montagnes
       oldrange = range(0) : 2d_pen_color col,col,col
       for i = 0 to w-1
           2d_line i-1,oldrange+lowmount,i,range(i)+lowmount
           2d_line i-1,oldrange+lowmount,i-1,h
           oldrange = range(i)
       next i
       lowmount = lowmount + lowr : lowr = lowr + 25
' Pour la chaîne suivante
       for i = 0 to w-1 : range(i) = 0 : next i
' Couleur plus sombre
       col = col - delta_col
    next n
' Dessinez un lac brumeux
    lacr = col + delta_col : lacg = col + delta_col : lacb = 255
    decrease = (lacb-(col + delta_col))/100
    for i = 1 to 100
        2d_pen_color  lacr,lacg,lacb : 2d_line 0,h-i,w,h-i
        lacb = lacb - decrease
    next i
END_SUB
rem ============================================================================
' Fonction Bruit de Perlin
SUB Perlin()
    dim_local zz,x,pointa,pointb, f,ft,interp, pi : pi = acos(-1)
    MyRnd() : pointb = a
    for zz= 1 to frequence
        pointa = pointb : MyRnd() : pointb = a
        for x = 0 to 1 step (1/(w/frequence))
            if sw = 1
               ft = x * pi : f  = (1 - cos(ft)) * .5
               interp =  pointa*(1-f) + pointb*f
            else
               interp = pointa*(1-x) + pointb*x
            end_if
            range(k) = range(k)+(interp*amplitude) : k = k + 1
        next x
        oldx = oldx + (w/frequence)
    next zz
END_SUB
rem ============================================================================
' Ma valeur aléatoire
SUB MyRnd()
    seed = (221*seed) + 2113 : seed = seed-(INT(seed/10000)*10000)
    a = seed/10000
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages EmptySam 22 Aoû 2015 - 21:45

sympa le résultat
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

 Générateur de  paysages Empty
MessageSujet: re    Générateur de  paysages EmptySam 22 Aoû 2015 - 22:43

Je le verrai bien avec du vert... Laughing
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages EmptyDim 23 Aoû 2015 - 8:14

Tes désirs Ygeronimi sont des ordres. Very Happy

Code:
rem ============================================================================
rem                  Landscape_Generator.bas
rem                  Générateur de  paysages
rem                      Par Papydall
rem ============================================================================
rem Pour des chaînes de montagnes normales, utiliser startval1 = 256 et startval2 = 2
rem Pour des paysages étranges utiliser startval1 = 500 et startval2 = 6
rem Jouez avec ces paramètres pour essayer des dunes ou des paysages marins
rem ============================================================================

Init()
Draw_Mountain()
caption 20,"!!! *** A D M I R E Z  C E  P A Y S A G E *** !!!"

end
rem ============================================================================
SUB Init()
    dim w : w = screen_x *.8
    dim h : h = screen_y *.8
    dim range(4096)
    dim lowr : lowr = 10
    dim col  : col  = 240 : ' 200
    dim delta_col : delta_col = 48
    dim rand : rand = rnd(1)
    dim lowmount  : lowmount  = 0
    dim startval1 : startval1 = 300 : ' 500
    dim startval2 : startval2 = 3  : ' 6
    dim newval1, newval2, amplitude, frequence, oldx, oldrange
    dim lacr, lacg, lacb, decrease, a, seed, k,sw
    if rand < .5 then sw = 0 : else : sw = 1
    full_space 0 : color 0,220,180,220 : caption 0,"Générateur de paysages par Papydall"
    picture 10 : width 10,w : height 10,h : top 10,(height(0) - h)/2 : left 10,(width(0)-w)/2
    color 10,150,200,255 : 2d_target_is 10
    alpha 20 : top 20,20 : left 20,w/3: font_bold 20 : font_size 20,24
    caption 20,"V E U I L L E Z  P A T I E N T E R ..... "
END_SUB
rem ============================================================================
' Dessiner 6 chaînes de montagnes
SUB Draw_Mountain()
    dim_local n, inc, i
    for n = 1 to 6
        pause 1 : newval1 = startval1 : newval2 = startval2
' Chaque chaîne de montagnes est produite par 6 fonctions "Bruit de Perlin"
' avec diminution de l'amplitude et croissance de la fréquence
      for inc = 1 to 6
          newval1 = newval1/2 : newval2 = newval2*2 : k = 0 : seed = rnd(1)
          amplitude = newval1 : frequence = newval2 : oldx = 0 : Perlin()
      next inc
' Couleur
      if n=1 then 2d_pen_color 230,255,240
      if n=2 then 2d_pen_color 200,255,200
      if n=3 then 2d_pen_color 150,200,150
      if n=4 then 2d_pen_color 100,150,100
      if n=5 then 2d_pen_color 50,100,50
      if n=6 then 2d_pen_color 0,50,0

' Dessiner la chaîne de montagnes
      oldrange = range(0)
      for i = 0 to w-1
          2d_line i-1,oldrange+lowmount,i,range(i)+lowmount
          2d_line i-1,oldrange+lowmount,i-1,h
          oldrange = range(i)
      next i
      lowmount = lowmount + lowr : lowr = lowr + 25
' Pour la chaîne suivante
      for i = 0 to w-1 : range(i) = 0 : next i
      col = col - delta_col
    next n
' Dessinez un lac brumeux
    lacr = col + delta_col : lacg = col + delta_col : lacb = 255
    decrease = (lacb-(col + delta_col))/100
    for i = 1 to 100
        2d_pen_color  lacr,lacg,lacb : 2d_line 0,h-i,w,h-i
        lacb = lacb - decrease
    next i
END_SUB
rem ============================================================================
' Fonction Bruit de Perlin
SUB Perlin()
    dim_local zz,x,pointa,pointb, f,ft,interp, pi : pi = acos(-1)
    MyRnd() : pointb = a
    for zz= 1 to frequence
        pointa = pointb : MyRnd() : pointb = a
        for x = 0 to 1 step (1/(w/frequence))
            if sw = 1
              ft = x * pi : f  = (1 - cos(ft)) * .5
              interp =  pointa*(1-f) + pointb*f
            else
              interp = pointa*(1-x) + pointb*x
            end_if
            range(k) = range(k)+(interp*amplitude) : k = k + 1
        next x
        oldx = oldx + (w/frequence)
    next zz
END_SUB
rem ============================================================================
' Ma valeur aléatoire
SUB MyRnd()
    seed = (221*seed) + 2113 : seed = seed-(INT(seed/10000)*10000)
    a = seed/10000
END_SUB
rem ============================================================================

A+
Revenir en haut Aller en bas
Minibug

Minibug


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

 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages EmptyDim 23 Aoû 2015 - 8:39

Bien joué Papydall !

Peut être des idées pour un fond de jeu 2D par exemple...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
The Gamer

The Gamer


Nombre de messages : 110
Age : 30
Localisation : Toulouse (31)
Date d'inscription : 11/05/2010

 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages EmptyDim 23 Aoû 2015 - 11:27

Genial !

Je propose une amélioration que je suis bien incapable de faire: ajouter des sommets enneigés ?
Revenir en haut Aller en bas
http://pierrehardy.pagesperso-orange.fr/
jpcr

jpcr


Nombre de messages : 276
Age : 57
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages EmptyDim 23 Aoû 2015 - 11:53

super, j'adore !!
Revenir en haut Aller en bas
http://jeanpierre.creis.free.fr/Panoramic/Panoramic.html
papydall

papydall


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

 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages EmptyDim 23 Aoû 2015 - 14:56

Salut tout le monde et merci pour vos mots encourageants.

Les désirs d’Ygeronimi ont été satisfaits par JC qui semble (parfois) oublier que Panoramic dispose (encore) de la structure SELECT … CASE … END_SELECT mieux adaptée qu'une série de IF ... END_IF tongue  tongue  tongue  HIHIHI !
Bon, une petite rangée d’arbres,(d'un autre monde) …. A améliorer !

Code:

rem ============================================================================
rem                  Landscape_Generator.bas
rem                  Générateur de  paysages
rem                      Par Papydall
rem ============================================================================
rem Pour des chaînes de montagnes normales, utiliser startval1 = 256 et startval2 = 2
rem Pour des paysages étranges utiliser startval1 = 500 et startval2 = 6
rem Jouez avec ces paramètres pour essayer des dunes ou des paysages marins
rem ============================================================================

Init()
Draw_Mountain()
caption 20,"!!! *** A D M I R E Z  C E  P A Y S A G E *** !!!"

end
rem ============================================================================
SUB Init()
    dim w : w = screen_x *.8
    dim h : h = screen_y *.8
    dim range(4096)
    dim lowr : lowr = 10
    dim col  : col  = 240 : ' 200
    dim delta_col : delta_col = 48
    dim rand : rand = rnd(1)
    dim lowmount  : lowmount  = 0
    dim startval1 : startval1 = 300 : ' 500
    dim startval2 : startval2 = 3  : ' 6
    dim newval1, newval2, amplitude, frequence, oldx, oldrange
    dim lacr, lacg, lacb, decrease, a, seed, k,sw

    if rand < .5 then sw = 0 : else : sw = 1
    full_space 0 : color 0,220,180,220 : caption 0,"Générateur de paysages par Papydall"
    picture 10 : width 10,w : height 10,h : top 10,(height(0) - h)/2 : left 10,(width(0)-w)/2
    color 10,150,200,255 : 2d_target_is 10
    alpha 20 : top 20,20 : left 20,w/3: font_bold 20 : font_size 20,24
    caption 20,"V E U I L L E Z  P A T I E N T E R ..... "
END_SUB
rem ============================================================================
' Dessiner 6 chaînes de montagnes
SUB Draw_Mountain()
    dim_local n, inc, i
    for n = 1 to 6
        pause 1 : newval1 = startval1 : newval2 = startval2
' Chaque chaîne de montagnes est produite par 6 fonctions "Bruit de Perlin"
' avec diminution de l'amplitude et croissance de la fréquence
      for inc = 1 to 6
          newval1 = newval1/2 : newval2 = newval2*2 : k = 0 : seed = rnd(1)
          amplitude = newval1 : frequence = newval2 : oldx = 0 : Perlin()
      next inc
' Couleur
      select n
           case 1 : 2d_pen_color 255,255,255
           case 2 : 2d_pen_color 200,200,200
           case 3 : 2d_pen_color 150,150,150
           case 4 : 2d_pen_color 100,120,100
           case 5 : 2d_pen_color 50,100,50
           case 6 : 2d_pen_color 0,50,0
      end_select

' Dessiner la chaîne de montagnes
      oldrange = range(0)
      for i = 0 to w-1
          2d_line i-1,oldrange+lowmount,i,range(i)+lowmount
          2d_line i-1,oldrange+lowmount,i-1,h
          oldrange = range(i)
      next i
      lowmount = lowmount + lowr : lowr = lowr + 25
' Pour la chaîne suivante
      for i = 0 to w-1 : range(i) = 0 : next i
      col = col - delta_col
    next n

' Dessinez un lac brumeux
    lacr = col + delta_col : lacg = col + delta_col : lacb = 255
    decrease = (lacb-(col + delta_col))/100
    for i = 1 to 100
        2d_pen_color  lacr,lacg,lacb : 2d_line 0,h-i,w,h-i
        lacb = lacb - decrease
    next i
' Dessiner une rangée d'arbres
     Tree_Range()
END_SUB
rem ============================================================================
' Fonction Bruit de Perlin
SUB Perlin()
    dim_local zz,x,pointa,pointb, f,ft,interp, pi : pi = acos(-1)
    MyRnd() : pointb = a
    for zz= 1 to frequence
        pointa = pointb : MyRnd() : pointb = a
        for x = 0 to 1 step (1/(w/frequence))
            if sw = 1
              ft = x * pi : f  = (1 - cos(ft)) * .5
              interp =  pointa*(1-f) + pointb*f
            else
              interp = pointa*(1-x) + pointb*x
            end_if
            range(k) = range(k)+(interp*amplitude) : k = k + 1
        next x
        oldx = oldx + (w/frequence)
    next zz
END_SUB
rem ============================================================================
' Rangée d'arbres
' Deux fonctions "Perlin noise"
SUB Tree_Range()
    dim_local inc,i,uppery,colg
    colg = 255 : lowr = 380
    startval1 = 50 + int(rnd(50)) : startval2 = 128 +int(rnd(256))
    newval1 = startval1*2 : newval2 = startval2/2
    for inc = 1 to 2
        newval1 = newval1/2 : newval2 = newval2*3
        k = 0 : seed = rnd(1) : amplitude = newval1 : frequence = newval2
        oldx = 0 : Perlin()
    next inc
    oldrange = range(0) : 2d_pen_color 30,colg,30
    for i = 0 to w
        uppery = oldrange + h-100
        if uppery > h then uppery = h
        if uppery < 9 then uppery = 9
        2d_line i-1,uppery,i-1,h : oldrange = range(i)
    next i
    lowmount = lowmount + lowr
END_SUB
rem ============================================================================
' Ma valeur aléatoire
SUB MyRnd()
    seed = (221*seed) + 2113 : seed = seed-(INT(seed/10000)*10000)
    a = seed/10000
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages EmptyDim 23 Aoû 2015 - 15:22

C'est très beau, mais je voudrais aussi des des bouquetins qui gambadent et vaches qui paissent, avec peut-être (si c'est possible) un berger et son chien qui fume la pipe (le berger, pas le chien) Very Happy

Ceci dit, c'est encore la 1ère que je préfère.
Revenir en haut Aller en bas
papydall

papydall


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

 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages EmptyDim 23 Aoû 2015 - 17:51

Hello JL35 (tu es toujours à trente cinq, hein ? pas un de plus, pas un de moins)
Jean Claude a bien  accompli les désirs d’Ygeronimi, va-il faire autant pour les tiens ?
Wait and see !
JL35 a écrit:
Ceci dit, c'est encore la 1ère que je préfère.

De qui s’agit-il ? De la vache ou de la pipe? Cool.  Car ce sont les seules du genre féminin dans ton message.
Perso je n' I love you ni l'une ni l'autre.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages EmptyDim 23 Aoû 2015 - 18:13

Eh en disant la 1ère je parlais de l'image, c'est à dire ton image originale en noir et blanc !
En plus, 35 ce n'est pas mon âge mais mon QI comme tu as bien dû deviner Very Happy
Revenir en haut Aller en bas
papydall

papydall


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

 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages EmptyDim 23 Aoû 2015 - 18:51

Avec un tel QI, tu me rassures : personne n'est imparfait!

lol! lol! lol!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages EmptyDim 23 Aoû 2015 - 20:46

Je savais bien que j'allais faire des envieux...
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages EmptyLun 24 Aoû 2015 - 11:20

interressant! ce n'est pas la premiere fois que je croise l'algorithme bruit de perlin, apparemment on peut faire plein de chose avec cyclops
Revenir en haut Aller en bas
Contenu sponsorisé





 Générateur de  paysages Empty
MessageSujet: Re: Générateur de paysages    Générateur de  paysages Empty

Revenir en haut Aller en bas
 
Générateur de paysages
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Des paysages qui flottent
» générateur de QCM
» Pseudo-objet - Générateur de code
» Générateur de grilles de Sudoku
» Générateur de mots de passe

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: