Interested by celtic, viking and arabic knotworks, I started develop
a java application, based on the Christian
Mercat method, to work on every kind of knotworks.
Principle consist in representing knotwork by a graph. Then, every
modification
of the graph will change the knotwork. An exemple of such a graph with
the corresponding knotwork is shown below.
Features
Creation of any type of graph (trangular, hexagonal, square ...),
and
immediate
vizualization of the coresponding knotwork
Toggle of edges type, corresponding to the crossing : up, down,
opposite,
or long. cf. Mercat's page for explanation.
Save and load of graphs
Use of a scalable
grid (square, or triangular) to place new nodes
Possibility of
changing the grid origin (press TAB to place on the closest node)
Select and move
several nodes and edges by one mouse movement
Get the dual of the graph : the same knotwork (in theory ...),
but with
a different graph
Pruning of the
graph : suppress all nodes connected to only one edge. Useful for one
looking
for minimal version of the graph.
Graph information : number of edges, number of nodes, with or
without
ghosts, adjacency matrix of the graph
Choice of visible structures among nodes, edges, anchors,
knotwork and
ghost nodes and edges
Put an image as background to overlay knotwork on it
Choose the style of the graph between 'celtic', 'round', 'arabic', and
'flat'.
Quick start
Add a node: select Action->New Node and clic at the place of the
new node
Add an edge: select Action->New Edge and clic on the two nodes to
link
Toggle edge type: select Action->Toggle edge and clic saveral times
on the edge to get the desired type
Erase everything: File->New
Versions:
The most recent version is 'Knotwork 0.4'. Older versions are still
available. For each one, you can launch the applet,
dowload the application (class files), or download the sources.
Lot of code rewritting, and also use of separate library of
computational geometry 'math.geom2d'. This is maybe a little bit
slower, but it should be more robust. It is also possible to change
knotwork style (celtic, arabic, round ...), to show adjacency amtrix of
the graph, and to put an image as background.
Alternative method to the first one: knotwork link middle of
each
edge instead of anchor points. The result looks like better, but there
is only one type and we lose possibility of dual graph.
First version of the applet. Principle consist in creating
some 'ghost'
edges around the graph, then put anchor points in the middle of each
face,
and draw small pieces of knotwork on each 'sub-edge' between node and
anchor.
It works, but it's not very cute...
Future works:
better interface, with possibily of automatically creating pieces
of
knotworks,
Use grids with any orientation
Allow user to modifiy each piece of curve individually.
copy-cut-paste and some user-friendly gadgets...
Get some mathematical information on the graph : loops number,
invariants
computation, ...
generate periodic graphs, to make mosaic of knotworks
some user manual, and some explanation on haw does the program
work
...
Links
Web
http://www.entrelacs.net/,
The
official page of the author, Christian Mercat, with plenty of examples
and exercises.
the book of George Bain, 'Celtic Art', ed. Constable
London,
which gives a lot of illusatration from all around the world.
other illustrations in : "Knotworks and spirals, a celtic art
Workbook",
from Courtney Davis, ed. Blandford.
"The Knot Book, an elementary introduction to the mathematical
Theory
of Knots", de Colin C. Adams. Very good book on the knotwork
theory,
and the mathematics behind them.
Some other softwares exist, but they're mainly limited to the case of
square
knotworks....