Connect the Dots 5

Connect the Dots 5 preview image

1 collaborator

Joshua_abrams Joshua Abrams (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.4.0 • Viewed 33 times • Downloaded 1 time • Run 0 times
Download the 'Connect the Dots 5' modelDownload this modelEmbed this model

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

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

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.