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.
Dessin 2d Emptypar Pedro Hier à 15:50

» Un autre pense-bête...
Dessin 2d Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Dessin 2d Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Dessin 2d Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Dessin 2d Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Dessin 2d Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Dessin 2d Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Dessin 2d Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Dessin 2d Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Dessin 2d Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Dessin 2d Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Dessin 2d Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Dessin 2d Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Dessin 2d Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Dessin 2d 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 :
LEGO Icons 10331 – Le martin-pêcheur
35 €
Voir le deal

 

 Dessin 2d

Aller en bas 
2 participants
AuteurMessage
Yannick




Nombre de messages : 8635
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 : 8635
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 : 970
Age : 52
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 : 8635
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 : 970
Age : 52
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 : 8635
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
» Dessin(x)
» Dessin INDUSTRIEL 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: