Skip to content
This repository has been archived by the owner on Jun 5, 2022. It is now read-only.
/ epicyclez Public archive

Numerical Algorithms course project - Drawing image contours using epicycles and DFT

License

Notifications You must be signed in to change notification settings

ivan-ristovic/epicyclez

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

epicyclez

Numerical Algorithms course project - Drawing image contours using epicycles and DFT

Implemented in C# (.NET). Currently available for Windows only.

The paper (in Serbian) explaining the project can be found here.

What are these "epicycles"?

The simplest epicycle is made by having a circle which centre is moving around another circle. You can create more complex epicycles by stacking more and more circles around already existing ones. Epicycles were known even to the ancient Greeks and then later Ptolemy, who used them to explain the complex motions of heavenly objects in his Ptolemaic planetary motion system (this system is so complex that motions of several objects are explained using epicycles consisting of as many as 80 circles!). By stacking circles with appropriate radii and rotating them with appropriate speeds it is possible for last circle in the stack to trace any given curve, even the famous Homer Simpson's orbit!

This program allows you to draw arbitrary shapes and curves and then draws them using specified amount of circles. How does it determine the radii and speeds of all those circles in order to trace the given curve? Well, if we think of a circle being a complex number with it's radius (magnitude of the complex number), initial rotation (phase of the complex number) and fixed rotation speed (frequency), we can calculate magnitude and phase for series of complex numbers with different fixed speeds. This is where DFT comes into picture, as DFT transforms the input function (signal) from time space to frequency space - giving us the values we need through complex numbers of different frequencies (math geeks who want more elaborate explanation can read more here). Once we have those complex numbers, all the work needed to be done is to picture them in the complex plane!

And there you have it, not complex at all (no pun intended).

Showcase

Image1 Image2 Image3

About

Numerical Algorithms course project - Drawing image contours using epicycles and DFT

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published