Celtic Knots
Steven Janke
October 2017
Steven Janke (Seminar) Celtic Knots October 2017 1 / 32 Typical Celtic Knot
Steven Janke (Seminar) Celtic Knots October 2017 2 / 32 Modern Celtic Art
Steven Janke (Seminar) Celtic Knots October 2017 3 / 32 Sutton Hoo Buckle (early 7th century)
Steven Janke (Seminar) Celtic Knots October 2017 4 / 32 Lindesfarne Gospels
1. Written by Bishop Eadfirth 2. Produced between 698 and 722 3. Four gospels plus Canon Tables 4. 518 pages (31 decorated); New cover commissioned in 1853 5. Currently in British Library (since 1753)
Steven Janke (Seminar) Celtic Knots October 2017 5 / 32 St. John Carpet page and initial page
Steven Janke (Seminar) Celtic Knots October 2017 6 / 32 Book of Kells close-up
Steven Janke (Seminar) Celtic Knots October 2017 7 / 32 Book of Durrow
Steven Janke (Seminar) Celtic Knots October 2017 8 / 32 Knots and Links
Definition of Knot A Knot is an embedding of the circle in three dimensional Euclidean space.
Knot Link
Steven Janke (Seminar) Celtic Knots October 2017 9 / 32 Plait Algorithm
1. George Bain (Art teacher, 1950’s) developed methods (not quite algorithms) using plaits. 2. Some evidence from pin pricks on vellum that grids were used. 3. For an R x C knot, draw a 2R x 2C grid. 4. Starting at first node to the right of upper left corner, draw bands using only diagonals. 5. Fill in curves appropriately.
Steven Janke (Seminar) Celtic Knots October 2017 10 / 32 Plait math
1. A band is a closed loop. 2. If the grid is 2R x 2C, then the number of bands is gcd(R, C). 3. Each band reflects off the boundary, but must hit the top, bottom, left, and right. 4. Total length of all bands is 4RC. 4RC 5. Length of any band is gcd(R,C) . 6. Whether an intersection node is on an odd or even row determines over or under.
Steven Janke (Seminar) Celtic Knots October 2017 11 / 32 Unfolding a Band
Steven Janke (Seminar) Celtic Knots October 2017 12 / 32 Parametric Curves
Describing a curve given coordinates as functions:
P(t) = (x(t), y(t)) x(t) = t + 3 y(t) = 2 − 5t =⇒ Line :(y = −5x + 17)
Describing a line given two points P0, P1: P(t) = (1 − t)P0 + tP1 = P0 − t(P1 − P0)
Short hand for: (x(t), y(t)) = (1 − t)x0 + t · x1, (1 − t)y0 + t · y1
Steven Janke (Seminar) Celtic Knots October 2017 13 / 32 Cubic Bezier Curves
P(t) = b0(t)P0 + b1(t)P1 + b2(t)P2 + b3(t)P3
3 0 2 b0(t) = (1 − t) b0(t) = −3(1 − t) 2 0 2 b1(t) = 3t(1 − t) b1(t) = 3(1 − t) − 6t(1 − t) 2 0 2 b2(t) = 3t (1 − t) b2(t) = 6t(1 − t) − 3t 3 0 2 b3(t) = t b3(t) = 3t
3 Note: b0(t) + b1(t) + b2(t) + b3(t) = (1 − t) + t = 1
Steven Janke (Seminar) Celtic Knots October 2017 14 / 32 Cubic Bezier with Control Points
Steven Janke (Seminar) Celtic Knots October 2017 15 / 32 Properties of Bezier Curves
1. Blending functions sum to one. (Bernstein polynomials.) 2. Find curve points by linear combinations of two points. (Casteljau algorithm.) 3. Curve stays in convex hull of control points. 4. Tangents at end points are line segments between control points. 5. Curve can be easily subdivided.
Steven Janke (Seminar) Celtic Knots October 2017 16 / 32 Differential Geometry of Plane Curves
Curve: P(t) = (x(t), y(t)) =⇒ P0(t) = (x0(t), y 0(t))
R t p 0 2 0 2 R t 0 Arc Length: s(t) = a (x (u) + y (u) )du = a kP (u)kdu
~ ~ P0(t) ~ 0 0 ~ Unit tangent vector T (t): T (t) = kP0(t)k =⇒ P (t) = s (t)T (t) Unit normal vector N~ (t): T~ 0(t) = s0(t)κ(t)N~ (t) (where κ(t) is curvature)
Parallel Curve: Q(t) = P(t) + rN~ (t)
Steven Janke (Seminar) Celtic Knots October 2017 17 / 32 Program Design
1. A Knot is a Grid of Nodes plus methods: findBands, buildPaths, drawPaths, etc. 2. Canvas2D has paintComponent method and listens for mouse clicks. 3. DisplayControls is the GUI with all the options coded. 4. Bands are arrays of Nodes summarized as strings HUVVHVVVHUVHVU (unblocked nodes and blocked nodes). 5. Patterns in strings (VVHVVVH) between unblocked nodes determine curves forming Path2D. 6. Bands converted to Path2D and to arrays of Segments which are used to render intersections.
Steven Janke (Seminar) Celtic Knots October 2017 18 / 32 Grammars
Production rules for Simple Sentence (Non-terminals are in capitals and terminals are in lower case.)
S → the ADJECTIVE NOUN VERB NOUN → car, train, cat ADJECTIVE → ADJECTIVE ADJECTIVE ADJECTIVE → red, big, soft VERB → moved, purred, stopped
Shape Grammars The non-terminals are sets of graphics elements and the terminals are single graphics elements.
Steven Janke (Seminar) Celtic Knots October 2017 19 / 32 Shape Grammar for Celtic Knots
Steven Janke (Seminar) Celtic Knots October 2017 20 / 32 Derivation using Shape Grammar
ensured because all of the rules maintain the local closure of a design. As a result, any design that is
generated from a closed initial shape will also be closed.
Figure 21 – Generating a Celtic knotwork pattern
The simple procedure of “growing” knotwork patterns, as illustrated in figure 21, offers an
elegant new way to conceptualise and generate knotwork designs. It can produce a range of complex Steven Janke (Seminar) designs, including historical examples ofCeltic the style. For Knots example, Allen (1904) defined eight elementary October 2017 21 / 32 knots which form the basis of nearly all of the knotwork patterns used in Celtic arts, and Bain (1990)
defined an additional two knots. Each of these can be generated using the Celtic knotwork grammar,
and as a result, so can the majority of historical examples. Figure 22 illustrates a selection of six
designs that were generated using the grammar. Five of these designs are recreations of patterns that
were used as ornamentation over a century ago, and the sixth design is an original creation. Simple Architectural Grammar
Steven Janke (Seminar) Celtic Knots October 2017 22 / 32 Example Houses
Steven Janke (Seminar) Celtic Knots October 2017 23 / 32 City Generation (Pompeii)
Steven Janke (Seminar) Celtic Knots October 2017 24 / 32 Grid-based Celtic Grammar
A. Start with grid and random selection of blocked nodes. B. Find bands and represent as strings like UVHUHVHUVVU. C. Production rules: (abridged)
S → band string UU → straight UxU → regular UVHU, UHVU → corner || pcurve + pcurve UVVU, UHHU → inflected UV...VU, UH...HU → quarter + straight + quarter UVHVU, UHVHU → loop regular regular → quarter + straight + quarter ...VHV..., ...HVH... → flexCorner
Steven Janke (Seminar) Celtic Knots October 2017 25 / 32 Zoomorphic knots
Steven Janke (Seminar) Celtic Knots October 2017 26 / 32 Spiral Patterns
Steven Janke (Seminar) Celtic Knots October 2017 27 / 32 Kolams (Tamil)
Steven Janke (Seminar) Celtic Knots October 2017 28 / 32 Kolams (Tamil)
Steven Janke (Seminar) Celtic Knots October 2017 29 / 32 Islamic design
Steven Janke (Seminar) Celtic Knots October 2017 30 / 32 Islamic design
Steven Janke (Seminar) Celtic Knots October 2017 31 / 32 References
1. Bain, George - Celtic Art: The methods of construction, 1951 2. Hull, Derek - Celtic & Anglo-Saxon Art: Geometric Aspects, 2003 3. Janke, Steven - Mathematical Structures for Computer Graphics, 2015
Steven Janke (Seminar) Celtic Knots October 2017 32 / 32