Various properties of finite iterations of the Heighway/Harter dragon curve and twindragon curve, including boundary, area, convex hull, minimum rectangle, XY convex hull, centroid, inertia, complex base i±1, area tree, and some properties of the fractal limit including boundary and fixed point.
Read draft 23,
dragon.pdf(about 3.5 mbytes, 391 pages)
dragon-23.tar.gz(about 3.1 mbytes, and sig)
"Draft" here means believed correct as far as it goes but there might be more to come in which case sections and equations will renumber. The quality varies in places, and it's becoming long, but there's plenty of pictures to look at. The LaTeX source uses PGF for pictures.
Document copyright 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Kevin Ryde. Permission is granted for anyone to make a copy for the purpose of reading it. Permission is granted for anyone to make a full complete verbatim copy, nothing added, nothing removed, nothing overlaid, for any purpose. The PDF rendition contains fonts which are Copyright American Mathematical Society and licensed under the Open Font License.
.tar.gz includes various generator and development
programs which are all
GPLv3 up. They're
mostly Perl and a bit rough. Modules used variously include
(some debs in my repo). The document has
self-tests with Pari/GP and
functions are extracted to a
devel/dragon-defines.gp which is
highly specific to the document but might be of interest for experimenting.
(Needs at least GP 2.9 up for various things.) Some C code using the
Nauty library makes dragon curve
graphs and trees for experimenting.
Draft 16 had a typo in the fLpred statement and errors in fR etc formulas and sample values.
Among my own results I like the unique fixed point "ffixed". The write-up is a rather long there, but its a nice "3 for 2" recurrence. Also good is the bit patterns which of "other" for switching between the two n which visit a location in the finite iterations. (Davis and Knuth have this in a folded form.)
A result I didn't reach is the diameter of the twindragon graph. It looks like the answer is a segment away from the curve endpoints, but how to show everything else is closer together, after various curling to sub-curve corners.
Among others' results not otherwise referred to, Albers has a careful calculation for an unfolding angle up to which the curve touches or crosses. The result is a solution to some slightly wild trigonometry which is a particular couple of segments.
See my Math::PlanePath::DragonCurve for some Perl code implementing curve coordinate calculations. The corresponding DragonCurve section of the PlanePath image gallery has some pictures. The complex base i±1 here is ComplexPlus and ComplexMinus.
for Perl code creating the area tree in
Graph.pm (or anything
twindragon-area-tree-10.pdf(about 22.0k) -- twindragon level 10 area tree
twindragon-area-tree-10-line.png(about 1.6k) -- twindragon level 10 area tree flattened to a line
Here are some dragon curve drawing programs by me and variously posted on
Rosetta Code. The
algorithms vary with the strengths of each language. (Between 2 and 6 kbytes
each, all free software GPLv3 up, included in the
dragon.el-- Emacs Lisp
dragon.gnuplot-- Gnuplot graph of coordinate function
dragon.gp-- Pari/GP plot (its low-level drawing)
dragon-unfold.gp-- Pari/GP plot of unfolded points
dragon.gri-- Gri drawing, recursive
dragon-iterative.gri-- Gri drawing, iterative
dragon.logo-- UCB Logo turtle turns
dragon.m4-- M4 by predicate making ascii art
dragon-pgf-direction.tex-- LaTeX with PGF and
dragon-pgf-latex.tex-- LaTeX with PGF
dragon-pgf-plain.tex-- plain TeX with PGF
dragon.scad-- OpenSCAD 3-D
dragon-matrix.scad-- OpenSCAD variation using transformation matrices
This page Copyright 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Kevin Ryde.
(Back to the sitemap.)