赞
踩
扩散图形与大多数其他NetLogo模型不同,因为它实际上并不像大部分模型那样对某种现象进行建模。它只是探索了一个有趣的patch原语背后的力量:“扩散”。
它并不打算精确模拟真实的热量,只是一种类似热量的行为--它会慢慢均匀地在一个平面上扩散开来。
在这个模型中,乌龟是“热点”--它们在每一个时间步设置一个特定值(称为‘heat’的patch变量)的最大水平。每个patch(通过“diffuse”原语)然后与其周围的patch共享其“heat”值。
在这里你可以观察到热点之间的相互作用,它们的移动,它们的值变为负数,或者热量慢慢减少到零。整个项目的重点是让你了解patch通过“diffuse”原语是如何相互作用的。(或者如果你无聊的话,也可以给你一些好看的东西来盯着看。)
两个按钮,SETUP和GO,控制模型的执行。和大多数NetLogo模型一样,SETUP按钮会初始化“热点”和其他变量,准备运行模型。GO按钮是一个永远运行的按钮,它会运行模型。
四个滑块和两个开关确定了模型的各种属性。它们中的每一个都可以在初始化之前设置;大多数可以在运行过程中使用来影响接下来会发生什么。
NUM-TURTLES确定了有多少只乌龟。TURTLE-SPEED确定了它们移动的速度。每只乌龟会将它所在的patch的“heat”设置为TURTLE-HEAT。然后这个patch会将它的“heat”扩散到附近的patches。
DIFFUSION-RATE滑块是颜色从每个patch扩散出来的速度。所有的patches每一个时间步都会将它们的颜色值扩散给它们的邻居。DIFFUSION-RATE只是这个颜色泄漏出去的分数。
如果WANDER?开关打开,乌龟可以在视图中移动。如果开关关闭,乌龟将保持在原地。
主要Diffusion Graphics将向你展示patch颜色在NetLogo中是如何扩散的。图形显示可能会唤起分形图像,或者地形图。扩散图形确实带来了某种地形,乌龟是山峰,最深的颜色是山谷。该模型基本上试图平滑这些差异。
让模型运行一段时间,将WANDER全部关闭(全部设置为0)。观察“地形”会发生什么。你预测最终会发生什么?
这个模型是为了让人愉悦而建立的。只需随意调整滑块和开关。之后,尝试修改代码,看看什么有效(以及什么无效)。
尝试将TURTLE-HEAT设置为一个非常大的数字。会发生什么?这对你了解NetLogo的颜色模型有什么启示?
尝试将TURTLE-HEAT设置为一个负数。会发生什么?这对你了解NetLogo的颜色模型有什么启示?
尝试将patch大小设置为一个较小的数字以获得更丰富的显示。或者将patch大小设置为较大,以获得“放大”的视角。
改变NUM-TURTLES滑块,使其能够在运行时改变乌龟的数量,而不需要重新点击SETUP。
目前每只乌龟的位置在初始化时是随机确定的。改变模型,使用户可以用鼠标来确定乌龟的位置。
以不同的方式对patches着色,也许沿着传统的ROY-G-BIV(红、橙、黄、绿、蓝、靛、紫)光谱。
Diffusion Graphics模型是围绕着diffuse原语设计的。diffuse是一个观察者原语,它接受两个输入,一个是patch变量,一个是数字。diffuse使所有的patch与它们的八个邻居分享那个patch变量。第二个输入是一个介于0和1.0之间的数字,确定了分享的patch变量的比例。(在这个模型中,分享的数量)
- patches-own [ heat ]
-
- to setup
- clear-all
- set-default-shape turtles "circle"
- create-turtles num-turtles ; each turtle is like a heat source
- [ setxy random-xcor random-ycor ; position the turtles randomly
- hide-turtle ; so we don't see the turtles themselves, just the heat they produce
- set heat turtle-heat ] ; turtles set the patch variable
- recolor-patches ; color patches according to heat
- reset-ticks
- end
-
- to go
- ask turtles [ set heat turtle-heat ] ; turtles set the patch variable
- if wander? [ ask turtles [ wander ] ] ; movement of turtles is controlled by WANDER? switch
- diffuse heat diffusion-rate ; this causes the "spreading" of heat
- recolor-patches ; color patches according to heat
- tick
- end
-
- to wander ; turtle procedure
- rt random 50 - random 50
- fd turtle-speed
- end
-
- to recolor-patches ;; color patches according to heat
- ask patches [ set pcolor heat ]
- end
-
-
- ; Copyright 1997 Uri Wilensky.
- ; See Info tab for full copyright and license.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。