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 fractionals including boundary and fixed point.
Read draft 20,
dragon.pdf
(about 3.4 mbytes, 382 pages)
dragon-20.tar.gz
(about 3.1 mbytes, and
sig)
Also by plain HTTP or by FTP or by RSYNC if desired. The sig file is a Gnu PG ascii armoured signature generated from my key.
"Draft" here means believed correct as far as it goes but with some more to be added. Sections and equations will renumber. The quality varies in places, and it's becoming quite 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 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.
The source .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
FLAT
,
Graph
, and
Math::Geometry::Planar
(some debs in my repo). The document has
self-tests with Pari/GP and
gp-inline
. GP
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.
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 also appearing is ComplexPlus and ComplexMinus.
See my
Graph::Maker::TwindragonAreaTree
for Perl code creating the area tree in Graph.pm
(or anything
compatible).
Other pictures:
twindragon-area-tree-10.pdf
(about 18.9k)
--
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 .tar.gz
above.)
dragon.el
-- Emacs Lisp picture-mode
ascii art
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 tikzmath
directions
dragon-pgf-latex.tex
-- LaTeX with PGF lindenmayersystems
library
dragon-pgf-plain.tex
-- plain TeX with PGF lindenmayersystems
library
dragon.scad
-- OpenSCAD 3-D
dragon-matrix.scad
-- OpenSCAD variation using transformation matrices
This page Copyright 2014, 2015, 2016, 2017, 2018, 2019 Kevin Ryde.