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
» PANORAMIC V 1
Dessin 2d Emptypar papydall Aujourd'hui à 2:21

» Gestion d'un système client-serveur.
Dessin 2d Emptypar Klaus Hier à 23:59

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Dessin 2d Emptypar Marc Hier à 12:14

» @Jack
Dessin 2d Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Dessin 2d Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Dessin 2d Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Dessin 2d Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Dessin 2d Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Dessin 2d Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Dessin 2d Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Dessin 2d Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Dessin 2d Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Dessin 2d Emptypar papydall Dim 21 Avr 2024 - 23:30

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

» Consommation gaz électricité
Dessin 2d Emptypar leclode Mer 17 Avr 2024 - 11:07

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier

 

 Dessin 2d

Aller en bas 
2 participants
AuteurMessage
Yannick




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

Dessin 2d Empty
MessageSujet: Dessin 2d   Dessin 2d EmptyJeu 6 Oct 2016 - 13:12

J' ai essayé de reproduire le film de la "Fourmi de Langton" mais le dessin bug.
Un spécialiste du dessin 2d pourrait il m' éclairer ?  Idea

Code:
dim x%,y%,pxd%,pyd%,ax%,ay%,s%,cpt%
label clic

height 0,780
width 0,850
caption 0,"Fourmi de Langton"
color 0,255,208,200

picture 1
height 1,700
width 1,700
top 1,10
left 1,10
color 1,255,255,255
2d_target_is 1
cursor_cross 1
inactive 1
on_click 1,clic


button 3
caption 3,"Lancer la fourmi"
width 3,120
top 3,height(0)-60
left 3,width(0)-(width(3)+20)
cursor_point 3
on_click 3,clic

button 2
caption 2,"Placer la fourmi"
width 2,120
top 2,height(0)-60
left 2,width(0)-(width(3)+width(2)+25)
cursor_point 2
on_click 2,clic

spin 4
top 4,10
left 4,725
width 4,100
min 4,1
max 4,1000000000
position 4,1

end

clic:
  if number_click = 1
      x% = mouse_x_left_down(1)
      y% = mouse_y_left_down(1)
      caption 0,str$(x%)+" - "+str$(y%)
      pxd%=x%
      pyd%=y%
      2d_target_is 1
      2d_pen_width 1
      2d_pen_color 0,0,0
      2d_point x%,y%
      inactive 1
      active 2
      return
  end_if

  if number_click = 2
      cls
      active 1
      inactive 2
      return
  end_if
 
  if number_click = 3
      Lancer()
      return
  end_if
return


sub Lancer()
  dim_local cpr%
  inactive 2
  inactive 3
  cpt%=1
  while cpt%<position(4)+1
      if x%<1 or x%>700 or y%<1 or y%>700
        message "Limite du cadre !"
        exit_while
      end_if
      caption 0,str$(cpt%)+" : "+str$(x%)+" - "+str$(y%)
      cpr%= color_pixel_red(1,x%,y%)
      if cpr%=255
        Tourner_a_droite()
      else
        Tourner_a_gauche()
      end_if
  cpt%=cpt%+1
  display
  end_while
  active 2
  active 3
end_sub

sub Tourner_a_gauche()
  2d_target_is 1
  2d_pen_width 1
  2d_pen_color 255,255,255
  2d_point x%,y%
  if pxd%=x% and pyd%=y% : s%=1 : end_if
  if s%=1
      x%=x%
      y%=y%-1
      s%=4
  end_if
 
  if s%=4
      x%=x%
      y%=y%-1
      s%=3
  end_if

  if S%=3
      x%=x%+1
      y%=y%
      s%=2
  end_if

  if s%=2
    x%=x%
    y%=y%-1
    s%=1
  end_if
end_sub

sub Tourner_a_droite()
  2d_target_is 1
  2d_pen_width 1
  2d_pen_color 0,0,0
  2d_point x%,y%
  if pxd%=x% and pyd%=y% : s%=1 : end_if
  if s%=1
      x%=x%+1
      y%=y%
      s%=2
  end_if

  if s%=2
      x%=x%
      y%=y%+1
      s%=3
  end_if

  if s%=3
      x%=x%-1
      y%=y%
      s%=4
  end_if

  if s%=4
      x%=x%
      y%=y%-1
      s%=1
  end_if
end_sub
Revenir en haut Aller en bas
Yannick




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

Dessin 2d Empty
MessageSujet: re   Dessin 2d EmptyJeu 6 Oct 2016 - 16:15

Bon je suis arrivé à un résultat.
Mais....pas celui de la fourmi.... Laughing

Code:
dim x%,y%,ax%,ay%,s%,cpt%,p%
label clic

height 0,780
width 0,850
caption 0,"Fourmi de Langton"
color 0,255,208,200

picture 1
height 1,700
width 1,700
top 1,10
left 1,10
color 1,255,255,255
2d_target_is 1
cursor_cross 1
inactive 1
on_click 1,clic


button 3
caption 3,"Lancer la fourmi"
width 3,120
top 3,height(0)-60
left 3,width(0)-(width(3)+20)
cursor_point 3
on_click 3,clic

button 2
caption 2,"Placer la fourmi"
width 2,120
top 2,height(0)-60
left 2,width(0)-(width(3)+width(2)+25)
cursor_point 2
on_click 2,clic

spin 4
top 4,10
left 4,725
width 4,100
min 4,1
max 4,1000000000
position 4,1

list 5
top 5,35
left 5,725
width 5,100
height 5,300
end

clic:
  if number_click = 1
      x% = mouse_x_left_down(1)
      y% = mouse_y_left_down(1)
      2d_target_is 1
      2d_pen_width 1
      2d_pen_color 255,255,255
      2d_point x%,y%
      inactive 1
      active 2
      return
  end_if

  if number_click = 2
      cls
      active 1
      inactive 2
      clear 5
      return
  end_if
 
  if number_click = 3
      Lancer()
      return
  end_if
return


sub Lancer()
  dim_local cpr%
  inactive 2
  inactive 3

  cpt%=0
  s%=1
  p%=position(4)
 
  while cpt%<p%

    ' compteur de mouvements
      cpt%=cpt%+1
      item_add 5,str$(cpt%)+" : "+str$(x%)+" - "+str$(y%)

    ' limitation du cadre de dessin
      if x%<1 or x%>700 or y%<1 or y%>700
        message "Limite du cadre !"
        exit_while
      end_if
     
    ' recup de la couleur de la case de la fourmi
      cpr%= color_pixel_red(1,x%,y%)

    ' si la case est blanche
      if cpr%=255
      ' tourne à gauche avance d'une case
        Tourner_a_droite_plus_un()
      ' l' ancienne case change de couleur / devient noir
        2d_target_is 1
        2d_pen_width 1
        2d_pen_color 0,0,0
        2d_point ax%,ay%
      end_if

    ' si la case est noire
      if cpr%=0
      ' tourne à gauche avance d'une case
        Tourner_a_gauche_plus_un()
      ' l' ancienne case change de couleur / devient blanche
        2d_target_is 1
        2d_pen_width 1
        2d_pen_color 255,255,255
        2d_point ax%,ay%
      end_if
     
  end_while
  active 2
  active 3
end_sub

sub Tourner_a_gauche_plus_un()
  ax%=x%
  ay%=y%
  if s%=1
      x%=x%-1
      y%=y%
      s%=4
      exit_sub
  end_if
 
  if s%=4
      x%=x%
      y%=y%-1
      s%=3
      exit_sub
  end_if

  if S%=3
      x%=x%+1
      y%=y%
      s%=2
      exit_sub
  end_if

  if s%=2
    x%=x%
    y%=y%-1
    s%=1
    exit_sub
  end_if
end_sub

sub Tourner_a_droite_plus_un()
  ax%=x%
  ay%=y%
  if s%=1
      x%=x%+1
      y%=y%
      s%=2
      exit_sub
  end_if

  if s%=2
      x%=x%
      y%=y%+1
      s%=3
      exit_sub
  end_if

  if s%=3
      x%=x%-1
      y%=y%
      s%=4
      exit_sub
  end_if

  if s%=4
      x%=x%
      y%=y%-1
      s%=1
      exit_sub
  end_if
end_sub
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Dessin 2d Empty
MessageSujet: Re: Dessin 2d   Dessin 2d EmptyDim 9 Oct 2016 - 2:21

une video de la "Fourmi de Langton"

Apparemment tu as un pb de rotation
Code:

 dim s%
'
'    0
' 3  F   1
'    2
'
' rotation vers la droite : ajouter 1
' rotation vers la gauche : soustraire 1

s%=1
print : print "F regarde ",s%,", rotation vers la gauche"
s%=s%-1
rot(s%)

s%=1
print : print "F regarde ",s%,", rotation vers la droite"
s%=s%+1
rot(s%)

s%=3
print : print "F regarde ",s%,", rotation vers la droite"
s%=s%+1
rot(s%)

s%=3
print : print "F regarde ",s%,", rotation vers la gauche"
s%=s%-1
rot(s%)

s%=0
print : print "F regarde ",s%,", rotation vers la droite"
s%=s%+1
rot(s%)

s%=0
print : print "F regarde ",s%,", rotation vers la gauche"
s%=s%-1
rot(s%)

s%=2
print : print "F regarde ",s%,", rotation vers la gauche"
s%=s%-1
rot(s%)

s%=2
print : print "F regarde ",s%,", rotation vers la droite"
s%=s%+1
rot(s%)

END
' maintenir une valeur entre 0 et 3:
sub rot(valu%)
   s%=bin_and(valu%,3)
   print "resultat = ",s%
end_sub
Revenir en haut Aller en bas
Yannick




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

Dessin 2d Empty
MessageSujet: re   Dessin 2d EmptyDim 9 Oct 2016 - 12:09

Il me semble que c' est bien ce que je fais.
Mais je dois surement avoir fait une erreur quelque part puisque je n' ai pas le bon résultat.
Laughing
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Dessin 2d Empty
MessageSujet: Re: Dessin 2d   Dessin 2d EmptyLun 10 Oct 2016 - 14:33

Code:

dim x%,y%,ax%,ay%,s%,cpt%,p%
label clic

height 0,780
width 0,850
caption 0,"Fourmi de Langton"
color 0,255,208,200

picture 1
height 1,700
width 1,700
top 1,10
left 1,10
color 1,255,255,255
2d_target_is 1
cursor_cross 1
inactive 1
on_click 1,clic


button 3
caption 3,"Lancer la fourmi"
width 3,120
top 3,height(0)-60
left 3,width(0)-(width(3)+20)
cursor_point 3
on_click 3,clic

button 2
caption 2,"Placer la fourmi"
width 2,120
top 2,height(0)-60
left 2,width(0)-(width(3)+width(2)+25)
cursor_point 2
on_click 2,clic

spin 4
top 4,10
left 4,725
width 4,100
min 4,1
max 4,1000000000
position 4,1

list 5
top 5,35
left 5,725
width 5,100
height 5,300
  s%=1  :' <----------------------------
end

clic:
  if number_click = 1
      x% = mouse_x_left_down(1)
      y% = mouse_y_left_down(1)
      2d_target_is 1
      2d_pen_width 1
      2d_pen_color 255,255,255
      2d_point x%,y%
      inactive 1
      active 2
      return
  end_if

  if number_click = 2
      cls
      active 1
      inactive 2
      clear 5
      return
  end_if

  if number_click = 3
      Lancer()
      return
  end_if
return


sub Lancer()
  dim_local cpr%
  inactive 2
  inactive 3

  cpt%=0
'  s%=1  :' <----------------------------
  p%=position(4)

  while cpt%<p%

    ' compteur de mouvements
      cpt%=cpt%+1
      item_add 5,str$(cpt%)+" : "+str$(x%)+" - "+str$(y%)

    ' limitation du cadre de dessin
      if x%<1 or x%>700 or y%<1 or y%>700
        message "Limite du cadre !"
        exit_while
      end_if

    ' recup de la couleur de la case de la fourmi
      cpr%= color_pixel_red(1,x%,y%)

    ' si la case est blanche
      if cpr%=255
      ' tourne à gauche avance d'une case
        ' Tourner_a_droite_plus_un()  :' <----------------------------
      ' l' ancienne case change de couleur / devient noir
        2d_target_is 1
        2d_pen_width 1
        2d_pen_color 0,0,0
'        2d_point ax%,ay%  :' <----------------------------
        2d_point x%,y%
        tourner(1)  :' <----------------------------
      end_if

    ' si la case est noire
      if cpr%=0
      ' tourne à gauche avance d'une case
        ' Tourner_a_gauche_plus_un()  :' <----------------------------
      ' l' ancienne case change de couleur / devient blanche
        2d_target_is 1
        2d_pen_width 1
        2d_pen_color 255,255,255
'        2d_point ax%,ay%  :' <----------------------------
        2d_point x%,y%
        tourner(0-1)  :' <----------------------------
      end_if

  end_while
  active 2
  active 3
end_sub

sub Tourner_a_gauche_plus_un()
  ax%=x%
  ay%=y%
  if s%=1
      x%=x%-1
      y%=y%
      s%=4
      exit_sub
  end_if

  if s%=4
      x%=x%
      y%=y%-1
      s%=3
      exit_sub
  end_if

  if S%=3
      x%=x%+1
      y%=y%
      s%=2
      exit_sub
  end_if

  if s%=2
    x%=x%
    y%=y%-1
    s%=1
    exit_sub
  end_if
end_sub

sub Tourner_a_droite_plus_un()
  ax%=x%
  ay%=y%
  if s%=1
      x%=x%+1
      y%=y%
      s%=2
      exit_sub
  end_if

  if s%=2
      x%=x%
      y%=y%+1
      s%=3
      exit_sub
  end_if

  if s%=3
      x%=x%-1
      y%=y%
      s%=4
      exit_sub
  end_if

  if s%=4
      x%=x%
      y%=y%-1
      s%=1
      exit_sub
  end_if
end_sub

sub tourner(sens%)
  ax%=x%
  ay%=y%
  s%=s%+sens%
  s%=bin_and(s%,3)

  select s%
    case 0 : y%=y%-1
    case 1 : x%=x%+1
    case 2 : y%=y%+1
    case 3 : x%=x%-1
  end_select
end_sub
Revenir en haut Aller en bas
Yannick




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

Dessin 2d Empty
MessageSujet: re   Dessin 2d EmptyLun 10 Oct 2016 - 17:06

Je vais regarder cela de près. Shocked
Revenir en haut Aller en bas
Contenu sponsorisé





Dessin 2d Empty
MessageSujet: Re: Dessin 2d   Dessin 2d Empty

Revenir en haut Aller en bas
 
Dessin 2d
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Dessin sur A4
» Dessin
» Dessin d'arc
» Problème de dessin.
» Dessin animé

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: