





 
 




 
 


Hi every one
To learn about Celtic knot : https://en.wikipedia.org/wiki/Celtic_knot
Basically, to draw a celtic knot you need to handle 4 different shapes (the
building blocks) that we call "brick":
1) the "corner" (from the center of a side to the center of an adjacent side)
which exists in two different directions.
2) the "straight" (from the center of a side to the center of the opposite side)
which exists in two different directions.
3) the "diagonal" (from a vertex to the opposite vertex) which exists in two
different directions.
4) the "bend" (from a vertex to the center of a non adjacent side) which exists
in eight different directions/symmetries.
In my generator I designed 8 different types of straights and diagonals, 4
different types of corners and 4 different types of bends.
I added to the previous bricks,
1) 5 different types of "crossings" (the way the cords crosses), one of them is
the historical crossing: one cord goes over the other one.
2) 5 different types of "muffs" (the way a bend connects to another brick on
its ends tha lies on a side)
Before I publish the program I'm eager to answer questions and more than that,
to read remarks and requests.
For the time being the program deals only with rectangular shapes, it should be
feasible to enhance it to handle rectangular shapes with rectangular holes, but
not to handle circles or triangles.
Post a reply to this message
Attachments:
Download 'knot.jpg' (226 KB)
Preview of image 'knot.jpg'


 
 




 
 


"Mediat" <med### [at] hotmailfr> wrote:
> Hi every one
>
> To learn about Celtic knot : https://en.wikipedia.org/wiki/Celtic_knot
>
> Basically, to draw a celtic knot you need to handle 4 different shapes (the
> building blocks) that we call "brick":
>
> 1) the "corner" (from the center of a side to the center of an adjacent side)
> which exists in two different directions.
> 2) the "straight" (from the center of a side to the center of the opposite side)
> which exists in two different directions.
> 3) the "diagonal" (from a vertex to the opposite vertex) which exists in two
> different directions.
> 4) the "bend" (from a vertex to the center of a non adjacent side) which exists
> in eight different directions/symmetries.
>
> In my generator I designed 8 different types of straights and diagonals, 4
> different types of corners and 4 different types of bends.
>
> I added to the previous bricks,
> 1) 5 different types of "crossings" (the way the cords crosses), one of them is
> the historical crossing: one cord goes over the other one.
> 2) 5 different types of "muffs" (the way a bend connects to another brick on
> its ends tha lies on a side)
>
> Before I publish the program I'm eager to answer questions and more than that,
> to read remarks and requests.
>
> For the time being the program deals only with rectangular shapes, it should be
> feasible to enhance it to handle rectangular shapes with rectangular holes, but
> not to handle circles or triangles.
Well done!
Having done something similar a few weeks ago I'm curious to know how you've
implemented it. Can you give more details ?
Pascal
Post a reply to this message


 
 




 
 


> Well done!
>
> Having done something similar a few weeks ago I'm curious to know how you've
> implemented it. Can you give more details ?
Hi Pascal,
I'll be glad to answer every question you have, basically I used the algorithm
described on page 33 of https://www.maths.ed.ac.uk/~v1ranick/knots/celtic.pdf to
build an array of "codes" (1= left, 2= up, 4=right, 8= down) each code + (i+j)%2
(where i and j are the coordintes in the array), gives the kind of brick and
its orientation.
for instance the array of the lower left knot is :
3 2 2 2 2 6
1 0 0 0 4 5
1 0 0 0 4 5
5 1 0 0 0 4
5 1 0 0 0 4
9 8 8 8 8 12
Do not hesitate to ask ...
Post a reply to this message


 
 




 
 


"Mediat" <med### [at] hotmailfr> wrote:
> I'll be glad to answer every question you have, basically I used the algorithm
> described on page 33 of https://www.maths.ed.ac.uk/~v1ranick/knots/celtic.pdf to
> build an array of "codes" (1= left, 2= up, 4=right, 8= down) each code + (i+j)%2
> (where i and j are the coordintes in the array), gives the kind of brick and
> its orientation.
>
> for instance the array of the lower left knot is :
>
> 3 2 2 2 2 6
> 1 0 0 0 4 5
> 1 0 0 0 4 5
> 5 1 0 0 0 4
> 5 1 0 0 0 4
> 9 8 8 8 8 12
>
> Do not hesitate to ask ...
Hi Mediat,
Thanks for the link. Knot theory is not my cup of tea but that looks an
interesting read. I keep it for reference and hope to have time later to dive
into it.
The algorithm on p.33 is a nice one: simple and efficient ! However I can't see
if the authors also give instructions on how to place the barriers at the
beginning of the algorithm (I confess I haven't spent much time looking for it).
How have you done yourself ? Do you set them manually ?
Regards,
Pascal
Post a reply to this message


 
 




 
 


Hi Pascal,
In the algorithm you can place the barriers wherever you want as long as you
respect the rules.
In my program, so far, you choose the symetries you want, then the process is
random.
Best regards and happy new year
Post a reply to this message


 
 




 
 


Il 22/12/2021 14:54, Mediat ha scritto:
> Hi every one
>
> To learn about Celtic knot : https://en.wikipedia.org/wiki/Celtic_knot
>
> Basically, to draw a celtic knot you need to handle 4 different
shapes (the
> building blocks) that we call "brick":
>
> 1) the "corner" (from the center of a side to the center of an
adjacent side)
> which exists in two different directions.
> 2) the "straight" (from the center of a side to the center of the
opposite side)
> which exists in two different directions.
> 3) the "diagonal" (from a vertex to the opposite vertex) which exists
in two
> different directions.
> 4) the "bend" (from a vertex to the center of a non adjacent side)
which exists
> in eight different directions/symmetries.
>
> In my generator I designed 8 different types of straights and
diagonals, 4
> different types of corners and 4 different types of bends.
>
> I added to the previous bricks,
> 1) 5 different types of "crossings" (the way the cords crosses), one
of them is
> the historical crossing: one cord goes over the other one.
> 2) 5 different types of "muffs" (the way a bend connects to another
brick on
> its ends tha lies on a side)
>
> Before I publish the program I'm eager to answer questions and more
than that,
> to read remarks and requests.
>
> For the time being the program deals only with rectangular shapes, it
should be
> feasible to enhance it to handle rectangular shapes with rectangular
holes, but
> not to handle circles or triangles.
A very nice work!
The flat crossings seem more realistic, are you also able to rise up the
crossings of the cylindrical ropes?
Paolo
Post a reply to this message


 
 




 
 


> The flat crossings seem more realistic, are you also able to rise up the
> crossings of the cylindrical ropes?
Hi Paolo,
I Hope this image is the right answer
Best regards
Philippe
Post a reply to this message
Attachments:
Download 'pv8.png' (541 KB)
Preview of image 'pv8.png'


 
 




 
 


Il 27/12/2021 14:29, Mediat ha scritto:
>
>> The flat crossings seem more realistic, are you also able to rise up the
>> crossings of the cylindrical ropes?
>
>
> Hi Paolo,
>
> I Hope this image is the right answer
>
> Best regards
>
> Philippe
Really nice!
Paolo
Post a reply to this message


 
 




 
 


"Mediat" <med### [at] hotmailfr> wrote:
> Before I publish the program I'm eager to answer questions and more than that,
> to read remarks and requests.
This is very nice. I'm interested in seeing lesssquare, morerectangular
shapes, and some directedpath examples, such as an excluded center (a knotwork
border) and maybe some sort of X or cross where the edge centers or corners are
excluded.
Could this be used to generate a tilable pattern, such as to cover a plane or
UVmap a cylinder?
Thanks!
Post a reply to this message


 
 




 
 


Hi Eagle (I'm the bald one ;))
1) Here is an example of a rectangular shape.
2) Crosses and holes shoud be easy to add
3) A tilable pattern should be easy to create as we can enforce X and Y symmetry
I must admit that I don't feel very motivated to enhance my program as it
doesn't seem to interest many people
Thanks for your interest
Best regards
Philippe
Post a reply to this message
Attachments:
Download 'bald.png' (307 KB)
Preview of image 'bald.png'


 
 




 