NAME

Graph::Maker::Twindragon - create Twindragon graph

SYNOPSIS

use Graph::Maker::Twindragon;
$graph = Graph::Maker->new ('twindragon', level => 4);

DESCRIPTION

Graph::Maker::Twindragon creates Graph.pm graphs of the twindragon, being two Heighway/Harter dragon curves back-to-back (Graph::Maker::Dragon).

                  *---*            *---*   *---*
                  |   |            |   |   |   |
   *---*          *---*---*        *---*---*---*---*
   |   |              |   |            |   |   |   |
   O---*              O---*            *---*   O---*

level => 0        level => 1             level=2


        *---*   *---*                    *---*   *---*
        |   |   |   |                    |   |   |   |
        *---*---*---*---*                *---*---*---*---*
            |   |   |   |                    |   |   |   |
*---*   *---*---*   O---*        *---*   *---*---*   O---*
|   |   |   |                    |   |   |   |
*---*---*---*---*                *---*---*---*---*
    |   |   |   |                    |   |   |   |
    *---*   *---*                    *---*---*---*---*
                                         |   |   |   |
   level => 3             level => 4     *---*---*---*---*
                                             |   |   |   |
                                 *---*   *---*---*   *---*
                                 |   |   |   |
                                 *---*---*---*---*
                                     |   |   |   |
                                     *---*   *---*

Vertex names are integer coordinates "X,Y" which are locations in the usual layout, starting at the origin "0,0" and spiralling anti-clockwise. Of course as a graph there's no need to actually use these coordinates for any display etc.

Arms

Optional parameter arms => 2 selects two curve arms. The second starts at the origin too and is rotated 180 degrees. Two arms like this eventually fill the plane, having edges horizontally or vertically between all integer points.

*---*   *---*                   
|   |   |   |                   
*---*---*---*---*                level => 3
    |   |   |   |                arms => 2
    *---*---O---*---*           
        |   |   |   |           
        *---*---*---*---*       
            |   |   |   |       
            *---*   *---*       

FUNCTIONS

$graph = Graph::Maker->new('twindragon', key => value, ...)

The key/value parameters are

level =>  curve expansion level >= 0
arms  =>  1 or 2 (default 1)
graph_maker => subr(key=>value) constructor, default Graph->new

Other parameters are passed to the constructor, either graph_maker or Graph->new().

If the graph is directed (the default) then edges are added both ways between vertices. Option undirected => 1 creates an undirected graph and for it there is a single edge between vertices.

SEE ALSO

Graph::Maker, Graph::Maker::Dragon, Graph::Maker::TwindragonAreaTree

HOME PAGE

http://user42.tuxfamily.org/graph-maker-other/index.html

LICENSE

Copyright 2015, 2016, 2017, 2018, 2019, 2020, 2021 Kevin Ryde

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with This file. If not, see http://www.gnu.org/licenses/.