Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Drawing a Hilbert Curve
Last updated at 9:31 am UTC on 29 October 2019

   World addMorph: (PolygonMorph
   shapeFromPen: [:p | p hilbert: 4 side: 5. p go: 5.
                   p hilbert: 4 side: 5. p go: 5]
   color: Color red borderWidth: 1 borderColor: Color black)

Copy the code above to a Workspace and evaluate it.

Hilbert_Curve_2017-03-08.png

Found on the class side of PolygonMorph in the method:

shapeFromPen: penBlock color: c borderWidth: bw borderColor: bc

This exemplifies that it's worth to hunt the code for little gems hidden there. Besides that you learn quite a bit by reading the code.


Maybe this is not a Hilbert curve; see http://www.shodor.org/interactivate/activities/hilbert1/what.html
Please change the text if this is not correct.

The explanation linked above is not correct (it shows a picture of a different Peano curve). This one is better: http://mathworld.wolfram.com/HilbertCurve.html and shows that the example code does generate two Hilbert curves.

It looks more like a Peano curve to me. http://www.geom.umn.edu/docs/reference/CRC-formulas/node36.html

Note: A Peano curve is ANY curve that fills the entire 2-dimensional plane, so the Hilbert curve is one example of a Peano curve.

Question: What would be be Squeak code for a dragon curve?

Answer: See http://www.math.okstate.edu/mathdept/dynamics/dragon.html; now here https://web.archive.org/web/20070826160025/http://www.math.okstate.edu/mathdept/dynamics/dragon.html

See also

PolygonMorph method shapeFromPen: