Comment affecter des valeurs à une turtle netlogo ?
Résolu
mynoe
Messages postés
23
Statut
Membre
-
mynoe Messages postés 23 Statut Membre -
mynoe Messages postés 23 Statut Membre -
Bonjour,
J'ai comme projet la modélisation d'une forêt sur netlogo. Je dois donc affecter des valeurs à mes "turtles" arbres :
- age
- taille
- circonférence
- envergure
Comment puis-je affecter différentes valeurs à mes turtles arbres ?
Merci de votre aide
J'ai comme projet la modélisation d'une forêt sur netlogo. Je dois donc affecter des valeurs à mes "turtles" arbres :
- age
- taille
- circonférence
- envergure
Comment puis-je affecter différentes valeurs à mes turtles arbres ?
Merci de votre aide
2 réponses
-
Bonjour,
Les variables d'un agent doivent être déclarées au début du programme, puis tu peux les modifier en appelant l'agent.
Exemple :;;;;; DECLARATIONS breed [ arbres arbre ] arbres-own [ age taille ] ;;;;; INITIALISATION to setup clear-all reset-ticks create-arbres 1 [ set shape "tree" set age 0 set taille 0 ] end ;;;;; EVOLUTION to go ask arbres [ set age (age + 1) set taille (taille + 1) ] tick end
Tu peux tester ensuite avec le Command Center :setup inspect arbre 0 go
Tu vas voir s'afficher une fenêtre "arbre 0" après la commande inspect, avec en bas les valeur age=0, taille=0 puis après le go, age=1 et taille=1.
Tu peux aussi créer des boutons associer aux commandessetup
etgo
pour faire ça via l'interface graphique plutôt que la ligne de commandes.
La confiance n'exclut pas le contrôle-
Un grand merci pour votre aide qui m'a permis d'y voir plus clair !
Pouvez vous svp me donner encore un petit coup de main :
Comment peut-on définir un "plot" traçant plusieurs courbes pour les différentes variables
- la moyenne de la taille de tous les arbres
- la moyenne de la circonférence de tous les arbres ...
En fonction de l'évolution du modèle, en donc de l'âge des arbres
Par avance merci -
Par exemple pour l'age moyen, tu rajoutes
globals [ age-moyen ]
dans les déclarations, puis dans le coeur du programme tu calculer sa valeur à chaque itération :set age-moyen 0 ask arbres [ set age-moyen (age-moyen + age) ] set age-moyen (age-moyen / (count arbres)) tick
Et enfin, tu te crées dans l'interface un élément de type plot dont tu configures un des "plot pens" avec la "pen update commands" qui vautplot age-moyen
Lorsque le programme arrive surtick
il rajoute un point dans le graphe. -
-
-
Bonsoir,
Je reviens vers vous pour pour une nouvelle question.
Je dois calculer pour chaque arbre un coefficient en fonction des arbres voisins (dans les 5m autour de lui). Cela correspond a la couverture angulaire entre chaque arbre
n
= ∑ arctan [ (hB - hA ) / distance arbreA arbreB ]
b =1
≠1
A : arbre étudié de hauteur hA
B : (un des) voisin de hauteur hB
n : nombre de voisins
(je ne sais pas comment joindre une photo pour illustrer désolée)
Voici mon code
breed [arbres arbre]
arbres-own [age circonference hauteur envergure]
globals [ deltaC deltaH deltaR age-moyen circonference-moy hauteur-moy envergure-moy xarbre1 yarbre1 trouve dist diff ]
to setup
clear-all
reset-ticks
set-default-shape arbres "tree"
ask patches [set pcolor brown - 3 ]
create-arbres Nb_arbres
[
set color green setxy random-xcor random-ycor
set age 10
set circonference 0.4
set hauteur 4
set envergure 2
set age-moyen 0
set hauteur-moy 0
]
end
to go
if ticks >= 50 [ stop ]
ask arbres [grow]
ask arbres [competition]
tick
do-plot
end
to competition
set xarbre1 pxcor
set yarbre1 pycor
if distancexy xarbre1 yarbre1 < 5
[
formule-a-saisir-ici??
]
end
to grow
set age ( age + 1 )
set deltaC ( 0.21787 * exp (age * 0.0849) * ( 1 - exp( -(age) * 0.0849)) ^ 1.127 )
set circonference ( circonference + deltaC )
set deltaH ( 0.0929 * deltaC )
set hauteur ( hauteur + deltaH )
set deltaR ( (0.09179 / 2 ) * deltaC )
set envergure ( envergure + deltaR )
end
to do-plot
set-current-plot "plot 2"
plot count turtles
end
Merci beaucoup pour l'aide que vous pouvez m'apporter