<commit_before>Chaikin
=======

##Overview##
A Java/Swing implementation of the Chaikin's algorithm using L-systems.
This project was done as a course project for the course in *Grammars
for generative art*, taught in the Faculty of Mathematics and Informatics
to Sofia University "<NAME>"

##Algorithm##
The algorithm is applied on curve with N vertexes. The goal is to get a smooth curve,
similar to a quadratic B-spline with control points at the vertexes of the initial
curve. 

The algorithm iteratively removes the edges of the curve, by replacing each
one of the vertexes with another two. These two points are located at the edges
that start from the respective vertex. Their coordinates are computed as follows:

<img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img8.gif" alt="chaikin" />

<img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img9.gif" /> <img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img10.gif" /> <img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img14.gif" />

<img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img12.gif" /> <img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img13.gif" /> <img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img14.gif" />

##L-systems##
An L-system specifies a set of rules to be applied on an input string.
L-systems are very similar in their nature to context-free grammars, but with
the difference that an L-system applies all of its rules simultaneously.

Example L-system:

axiom: F->F+F-F <br />
input: F+F-F+F <br />

result of single application of the rules of the L-system over the input string: <br/>
F+F-F+F+F-F-F+F-F+F+F-F


##License##
The code can be freely used and distributed under the terms of the GPL license.
See the LICENSE file for details

##Author##
<NAME>
<br />
<EMAIL><commit_msg>mit license<commit_after>Chaikin
=======

##Overview##
A Java/Swing implementation of the Chaikin's algorithm using L-systems.
This project was done as a course project for the course in *Grammars
for generative art*, taught in the Faculty of Mathematics and Informatics
to Sofia University "St. Kliment Ohridski"

##Algorithm##
The algorithm is applied on curve with N vertexes. The goal is to get a smooth curve,
similar to a quadratic B-spline with control points at the vertexes of the initial
curve. 

The algorithm iteratively removes the edges of the curve, by replacing each
one of the vertexes with another two. These two points are located at the edges
that start from the respective vertex. Their coordinates are computed as follows:

<img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img8.gif" alt="chaikin" />

<img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img9.gif" /> <img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img10.gif" /> <img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img14.gif" />

<img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img12.gif" /> <img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img13.gif" /> <img src="http://www.idav.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/img14.gif" />

##L-systems##
An L-system specifies a set of rules to be applied on an input string.
L-systems are very similar in their nature to context-free grammars, but with
the difference that an L-system applies all of its rules simultaneously.

Example L-system:

axiom: F->F+F-F <br />
input: F+F-F+F <br />

result of single application of the rules of the L-system over the input string: <br/>
F+F-F+F+F-F-F+F-F+F+F-F


##License##
The code can be freely used and distributed under the terms of the MIT license.
See the LICENSE file for details

##Author##
<NAME>
<br />
<EMAIL>
{'fraction_non_alphanumeric': 0.11526717557251909, 'fraction_numerical': 0.0061068702290076335, 'mean_word_length': 4.544428772919605, 'pattern_counts': {'":': 0, '<': 30, '<?xml version=': 0, '>': 32, 'https://': 0, 'lorem ipsum': 0, 'www.': 14, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6129833', 'n_tokens_mistral': 1349, 'n_tokens_neox': 1233, 'n_words': 430}