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
» Gestion d'un système client-serveur.
Dessin 2d Emptypar Pedro Aujourd'hui à 7:20

» item_index(résolu)
Dessin 2d Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Dessin 2d Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Dessin 2d Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Dessin 2d Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Dessin 2d Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Dessin 2d Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Dessin 2d Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Dessin 2d Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Dessin 2d Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Dessin 2d Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Dessin 2d Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Dessin 2d Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Dessin 2d Emptypar Klaus Lun 6 Mai 2024 - 11:41

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

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-26%
Le deal à ne pas rater :
Bosch BBS8214 Aspirateur Balai Multifonction sans fil Unlimited ...
249.99 € 339.99 €
Voir le deal

 

 Dessin 2d

Aller en bas 
2 participants
AuteurMessage
Yannick




Nombre de messages : 8611
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 : 8611
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 : 8611
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 : 8611
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
» Dessin INDUSTRIEL animé
» Dessin(x)
» Dessin sur A4
» Problème de dessin.

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: