Connect the Dots 5
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This program is a tool for exploring patterns made by jumping around a circle based on the number of dots and the size of the jump.
HOW IT WORKS
Each round, the design begins at dot 0 and keeps going until a jump returns to 0.
HOW TO USE IT
The switch called Show-labels turns the numbers on the dots on and off. The switch Draw-one-segment allows you to step through the development of a design one segment at a time. If you set it to Off, the program will keep drawing segment jumps until 0 is reaached. If you turn Sorted to On, the list of points hit will be sorted. If not, they will be listed in the order they are hit by the jumps starting at 0.
THINGS TO NOTICE
Do you always hit all dots? Why or why not? ow many are hit? What combinations of dot number and jump size produce which shapes? Why?
THINGS TO TRY
The dotnum (number of dots) and jumpsize (amount added each time as segments are connected) can be changed by dragging the sliders or by manually entering a number in the boxes below the sliders. The sliders are restricted to whole numbers, but the boxes are not. What happens if the jumpsize is bigger than the dot number? Is negative? If a fraction? Do you conjectures still work when numbers other than whole numbers are used?
CREDITS AND REFERENCES
A very thorough resource for understanding the potential of this program for teaching conjecturing is at www.makingmath.org or http://www2.edc.org/makingmath/mathsettings/connect/connect.asp and http://www2.edc.org/makingmath/mathsettings/connect/ConnectTheDots_TeachNotes.asp
The original idea for this tool came from the program Connectany by Jonathan Choate
Connect the Dots 5 © 2018 by Joshua Abrams/Making Math is licensed under CC BY-NC-SA 4.0 (https://creativecommons.org/licenses/by-nc-sa/4.0/)
Comments and Questions
globals [leg mover dots-hit] breed [dlabel dlabels] to go ifelse draw-one-segment [draw-next] [connect-all] if Show-labels [let i 0 repeat dotnum [create-dlabel 1 [set color blue set size 0 set label i set label-color 93 set xcor 4 + int(290 * sin(i * 360 / dotnum)) set ycor int(290 * cos(i * 360 / dotnum)) set i i + 1]]] end to draw-next ifelse leg > 1 ;;started doing them individually already [ask turtle mover[setxy int(280 * sin((leg * jumpsize mod dotnum) * 360 / dotnum)) int(280 * cos((leg * jumpsize mod dotnum) * 360 / dotnum))] if int(leg * jumpsize) = (leg * jumpsize) and Show-labels [output-print ((leg * jumpsize) mod dotnum) set dots-hit lput ((leg * jumpsize) mod dotnum) dots-hit if sorted [sortdots]] set leg leg + 1] ;; draw one more leg ;;ELSE first leg to be drawn, need dots as well [let i 0 set dots-hit [0] repeat dotnum [crt 1 [set color red set shape "circle" set size 6 facexy 0 0 set xcor int(280 * sin(i * 360 / dotnum)) set ycor int(280 * cos(i * 360 / dotnum))] set i i + 1 ] crt 1 [set mover who set color blue setxy 0 280 pd setxy int(280 * sin((leg * jumpsize mod dotnum) * 360 / dotnum)) int(280 * cos((leg * jumpsize mod dotnum) * 360 / dotnum)) if int(leg * jumpsize) = (leg * jumpsize) and Show-labels [output-print ((leg * jumpsize) mod dotnum) set dots-hit lput ((leg * jumpsize) mod dotnum) dots-hit if sorted [sortdots]] set leg leg + 1]] end to connect-all ;; (for this model to work with NetLogo's new plotting features, ;; __clear-all-and-reset-ticks should be replaced with clear-all at ;; the beginning of your setup procedure and reset-ticks at the end ;; of the procedure.) ca ask patches [set pcolor white] let i 0 if Show-labels [output-print 0] set dots-hit [0] repeat dotnum [crt 1 [set color red set shape "circle" set size 6 facexy 0 0 set xcor int(280 * sin(i * 360 / dotnum)) set ycor int(280 * cos(i * 360 / dotnum))] set i i + 1 ] let j 1 crt 1 [set color blue setxy 0 280 pd setxy int(280 * sin((j * jumpsize mod dotnum) * 360 / dotnum)) int(280 * cos((j * jumpsize mod dotnum) * 360 / dotnum)) if int(j * jumpsize) = (j * jumpsize) and Show-labels [output-print ((j * jumpsize) mod dotnum) set dots-hit lput ((j * jumpsize) mod dotnum) dots-hit if sorted [sortdots]] set j j + 1 while [(distance turtle 0) > 0.1] [setxy int(280 * sin((j * jumpsize mod dotnum) * 360 / dotnum)) int(280 * cos((j * jumpsize mod dotnum) * 360 / dotnum)) if int(j * jumpsize) = (j * jumpsize) and Show-labels [output-print ((j * jumpsize) mod dotnum) set dots-hit lput ((j * jumpsize) mod dotnum) dots-hit if sorted [sortdots]] set j j + 1]] end to sortdots set dots-hit sort remove-duplicates dots-hit clear-output foreach dots-hit output-print end
There is only one version of this model, created 12 days ago by Joshua Abrams.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Connect the Dots 5.png | preview | Preview for 'Connect the Dots 5' | 12 days ago, by Joshua Abrams | Download |
This model does not have any ancestors.
This model does not have any descendants.