globals [ clock ;; number of ticks that have passed in simulation membrane-edge-x ;; horizontal distance from center to edge of membrane membrane-edge-y ;; vertical distance from center to edge of membrane ] turtles-own [ edge? ;; are we on the edge of the membrane? driver? ;; are we part of the green driving plate? x ;; position on x axis in space y ;; position on y axis in space z ;; position on z axis in space velocity ;; velocity along z axis neighbor-turtles ;; agentset of turtles adjacent to us ] to setup ca set clock 0 set membrane-edge-x floor (screen-edge-x / 2) set membrane-edge-y floor (screen-edge-y / 2) set-default-shape turtles "circle" ask patches with [(abs pxcor <= membrane-edge-x) and (abs pycor <= membrane-edge-y)] [ sprout 1 [ set edge? (abs xcor = membrane-edge-x) or (abs ycor = membrane-edge-y) if edge? [ set color blue ] set driver? (abs (xcor - gonilnik-x) <= velikost-gonilnika) and (abs (ycor - gonilnik-y) <= velikost-gonilnika) if driver? [ set color green ] set x xcor set y ycor set z 0 set velocity 0 recolor ] ] ask turtles [ set neighbor-turtles turtles-on neighbors4 ] project end to recolor ;; turtle procedure if not edge? and not driver? [ set color scale-color red z -20 20 ] end to go ask turtles with [not driver? and not edge?] [ propagate ] ask turtles [ ifelse driver? [ set z (amplituda * (sin (0.1 * frekvenca * clock))) ] [ set z (z + velocity) recolor ] ] project set clock clock + 1 end to propagate ;; turtle procedure -- propagates the wave from neighboring turtles set velocity (velocity + (trdnost-opne * 0.01 * (sum values-from neighbor-turtles [z] - 4 * z))) set velocity (((1000 - trenje-opne) / 1000) * velocity) end ;;; procedures for displaying in 2-D or 3-D to project ifelse tri-d? [ project-3d ] [ project-2d ] end to project-3d ask turtles [ setxy (x + (cos kot-gledanja) * y) (z + (sin kot-gledanja) * y) ;; don't draw turtles that "wrap" around the screen edge ifelse abs (z + (sin kot-gledanja) * y) > screen-edge-y [ hide-turtle ] [ show-turtle ] recolor ] end to project-2d ;; Set our on-screen x and y coordinates to be the same as our real ;; coordinates. This is only needed for if the user turns THREE-D? ;; off while the model is running. ask turtles [ setxy x y recolor show-turtle ] end ; *** NetLogo Model Copyright Notice *** ; ; This model was created as part of the project: CONNECTED MATHEMATICS: ; MAKING SENSE OF COMPLEX PHENOMENA THROUGH BUILDING OBJECT-BASED PARALLEL ; MODELS (OBPML). The project gratefully acknowledges the support of the ; National Science Foundation (Applications of Advanced Technologies ; Program) -- grant numbers RED #9552950 and REC #9632612. ; ; Copyright 1996 by Uri Wilensky. All rights reserved. ; ; Permission to use, modify or redistribute this model is hereby granted, ; provided that both of the following requirements are followed: ; a) this copyright notice is included. ; b) this model will not be redistributed for profit without permission ; from Uri Wilensky. ; Contact Uri Wilensky for appropriate licenses for redistribution for ; profit. ; ; This model was converted to NetLogo as part of the project: ; PARTICIPATORY SIMULATIONS: NETWORK-BASED DESIGN FOR SYSTEMS LEARNING IN ; CLASSROOMS. The project gratefully acknowledges the support of the ; National Science Foundation (REPP program) -- grant number REC #9814682. ; Converted from StarLogoT to NetLogo, 2001. Updated 2003. ; ; To refer to this model in academic publications, please use: ; Wilensky, U. (1996). NetLogo Wave Machine model. ; http://ccl.northwestern.edu/netlogo/models/WaveMachine. ; Center for Connected Learning and Computer-Based Modeling, ; Northwestern University, Evanston, IL. ; ; In other publications, please use: ; Copyright 1998 by Uri Wilensky. All rights reserved. See ; http://ccl.northwestern.edu/netlogo/models/WaveMachine ; for terms of use. ; ; *** End of NetLogo Model Copyright Notice *** @#$#@#$#@ GRAPHICS-WINDOW 350 20 730 400 90 90 2.0 0 10 0 0 CC-WINDOW 20 390 300 530 Command Center BUTTON 40 40 130 80 nastavi setup NIL 1 T OBSERVER BUTTON 190 40 280 80 začni go T 1 T OBSERVER SWITCH 20 320 110 360 tri-d? tri-d? 0 1 -1000 SLIDER 20 105 150 135 trdnost-opne trdnost-opne 0.0 50.0 10.0 0.1 1 NIL SLIDER 170 105 300 135 trenje-opne trenje-opne 0.0 99.0 47.0 0.1 1 NIL SLIDER 20 165 150 195 gonilnik-x gonilnik-x -11 11 -11 1 1 NIL SLIDER 170 165 300 195 gonilnik-y gonilnik-y 5 50 0 1 1 NIL SLIDER 90 210 230 245 velikost-gonilnika velikost-gonilnika 0 10 3 1 1 NIL SLIDER 20 255 150 285 amplituda amplituda 0.0 30.0 15.0 0.1 1 NIL SLIDER 170 255 300 285 frekvenca frekvenca 0.0 100.0 45.0 0.1 1 NIL SLIDER 170 325 280 355 kot-gledanja kot-gledanja 0.0 90.0 17.0 0.1 1 NIL @#$#@#$#@ KAJ JE TO? --------------- Model simulira valovanje na opni. Štirje robovi opne so fiksirani v okviru. Zelena pravokotna površina predstavlja gonilno ploščo, ki se premika gor in dol ter prikazuje sinusno valovanje. KAKO UPORABLJAMO ---------------- Krmila za posebnosti opne: Drsnik TRENJE krmili količino trenja oziroma tanjšanje opne. Drsnik TRDNOST krmili moč uporabljeno na želvi in sicer z enoto za merjenje razlik v upogibanju med želvo in njenimi štirimi sosedi. Krmila za gonilno moč: Drsnik FREKVENCA-GONILNIKA krmili frekvenco, zaradi katere se zelena plošča opne (gonilna moč) premika gor in dol. Drsnik AMPLITUDA-GONILNIKA krmili največjo višino, do katere gre lahko zelena plošča opne. Drsnika GONILNIK-X in GONILNIK-Y krmilita lego gonilnika. Drsnik VELIKOST-GONILNIKA opravlja z velikostjo gonilnika. Krmila za gledanje valovanja: Stikalo TRI-D? krmili točko gledanja sheme. OFF je za pogled od zgoraj (2-D pogled) in ON ti ponuja izometričen pogled na shemo, ob kotu izbranem z drsnikom KOT-GLEDANJA. UPRAVLJANJE Z MODELOM ----------------------- Klikni gumb NASTAVI, da nastaviš opno. Klikni na gumb ZAŽENI, da se prične izbrana površina opne (zelene želvice) premikati gor in dol. STVARI, KI JIH JE DOBRO VEDETI -------------------------------- Opna je bila narejena z metodo želvic. Vsaka želvica se pretvarja, kot bi bila povezana z razpoko s svojimi štirimi sosedami. V tem modelu se želvice gibajo le gor in dol -- smer moči JE vedno gor in dol. Večja je razlika med želvico in njenimi sosedami, večja je moč. Ko se zelene želvice premikajo navzgor, povlečejo za sabo želvice, ki so njihove sosede, katere pa spet po vrsti povlečejo navzgor želvice, ki so pa njihove sosede, in tako naprej. Tako val potuje vzdolž opne. Ko val doseže rob opne (modre želvice), je val odbit nazaj do centra opne. Amplituda zelenih želvic je pritrjena ne glede na trdoto opne. Kakorkoli že, zahteva premikanje toge opne veliko več moči za gibanje do vrednosti, ki jo z lahkoto dosežemo z netrdo opno. Četudi trdota opne naraste, bo višina vala ostala enaka, ker je amplituda ohranjena enaka. STVARI, KI JIH JE DOBRO POIZKUSITI ------------------------------------ Poizkusi različne opne. Mehka opna ima vrednost trdnosti manjšo in trdna opna ima vrednost trdnosti večjo. Poizkusi različne moči gonilnika, ali pa poizkusi spremeniti frekvenco ali amplitudo. Zanimivo je tudi spremeniti velikost in položaj moči gonilnika, da vidimo simetrično in asimetrično valovanje. Poizkusi kreirati "stoječi val", v katerem se nekatere točke opne sploh ne premikajo. RAZŠIRITEV MODELA ------------------- V tem modelu je premikanje želvic samo v vertikalni smeri, pravokotno na opno. Spremeni model tako, da bo premikanje znotraj ravnine opne, x-y ravnine. Seveda lahko dodaš še dodatne moči gonilnika tako, da narediš multi-vhod modela opne. Druga stvar, ki jo lahko poizkusiš je, da priložiš moči-gonilnika različne oblike valov, pri katerem se bo videlo, kako opna reagira na različne količine/vložke. Spremeni celotno obliko moči gonilnika. Poizkusi zgraditi čvrst model, ki bo model oblik valov znoraj vseh treh dimenzij. Namesto uporabe amplitude kreiraj val, ki ga spremeniš z nenehno uporabo fiksirane količine moči. NETLOGO PRIHODNOSTI --------------------- Zapomni si uporabo ŽELVICE-OD zapisnika, ki poišče želvice na sosednjem kosu. Ključni korak v razvoju tega modela je bil kreirati notranji koordinatni sistem. X, Y in Z so samo tri želvičine spremenljivke. Lhko si predstavljaš, da so želvice postavljene noter in se premikajo naokrog v 3-prostoru. Ampak za prikaz želvic na zaslonu, ki so 2-dimenzionalne, morajo biti želvičine 3 koordinate včrtane na dve. V 2-D pogledu sta želvičini koordinati x in y premaknjeni direktno na zaslon, z koordinata pa je prikazana samo s spreminjanjem barve želvic z uporabo primitivne BARVNE-LESTVICE. V 3-D pogledu je izometrična projekcija uporabljena za premikanje x, y in z (želvičina prava lega) do xcor in ycor (njena lega na zaslonu). V tej projekciji naj bi točka na zaslonu odgovarjala večim kot samo eni točki v 3-dimenzionalnem koordinatnem sistemu. Tako v tej projekciji še vedno menjamo barvo želve glede na njeno lego, da pomagamo očesu razlikovati. V 3-D verziji nima smisla, da želvice "skrivamo", če dosežejo vrh ali dno zaslona, saj so želvice skrite, če njihov računalniški ycor prekorači mejo zaslona. ZASLUGE IN REFERENCE --------------------- Zahvala gre Weiguo-u Yang za pomoč pri tem modelu. Če se oziramo na ta model v študijskih publikacijah, prosim uporabite: Wilensky, U.(1996). NetLogo Naprava za prikaz valovanja. http://ccl.northwestern.edu/netlogo/models/WaveMachine. Center za združitev učenja in računalniškega modeliranja, Northwestern University, Evanston, IL. V drugih publikacijah, prosim uporabite: Copyright 1996 by Uri Wilensky. Vse pravice so pridržane. Poglej http://ccl.northwestern.edu/netlogo/models/WaveMachine za pogoje uporabe. Model je poslovenila Klara Štravs, dne 14. 1. 2006. @#$#@#$#@ default true 0 Polygon -7566196 true true 150 5 40 250 150 205 260 250 @#$#@#$#@ NetLogo 1.2.1 @#$#@#$#@ @#$#@#$#@ @#$#@#$#@