# Furi-Kuri with Epicycles

**URL:** <https://racket.discourse.group/t/furi-kuri-with-epicycles/3276>\
**Category:** Show & Tell\
**Created:** [October 29, 2024, 12:07am UTC](https://racket.discourse.group/t/furi-kuri-with-epicycles/3276 "2024-10-29T00:07:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![bakgatviooldoos](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/bakgatviooldoos/32/1381_2.png) [@bakgatviooldoos](https://racket.discourse.group/u/bakgatviooldoos)\
**Post date:** [October 29, 2024, 12:07am UTC](https://racket.discourse.group/t/furi-kuri-with-epicycles/3276/1 "2024-10-29T00:07:59Z")

</div>

Hi, Racket Discourse.

All the talk about [2D coordinates](https://racket.discourse.group/t/implementing-a-2d-point-with-pairs-vs-flvectors-vs-structs-vs-complex-a-primitive-benchmark/3274) reminded me I had been playing around with Fourier Transforms earlier in the year.

I had always been intrigued by them, but never really taken the time to grok them enough to do anything interesting.

Luckily, they are super easy once you get [the gist](https://gist.github.com/bakgatviooldoos/c8aa3e2f880dcb7be269b5b1628e9820) of it. There are many better explanations than I could manage here, but at least this will give you a taste of what they can do!

```scheme
("fourier-racket.txt"
 . fourier-loop .
 #:msecs-per-frame 40
 #:save-gif-to-file "racket-epicycles.gif")

```

![racket-epicycles-compressed](https://global.discourse-cdn.com/free1/uploads/racket/original/2X/0/0949a0aea426f4b8bf034035904f657e720a289c.gif)

_As is tradition, the Racket logo. (compressed a bit to fit here)_

The code includes the ability to generate a GIF from the resulting animated transform, although the implementation is not very performant, so expect to see some stuttering for higher-density inputs.

I used [coördinator](https://spotify.github.io/coordinator/) to convert the Racket logo SVG into a set of coordinates to draw. Very nifty little site.

Happy hacking!

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [November 14, 2024, 11:08pm UTC](https://racket.discourse.group/t/furi-kuri-with-epicycles/3276/2 "2024-11-14T23:08:13Z")

</div>



---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [November 14, 2024, 11:51pm UTC](https://racket.discourse.group/t/furi-kuri-with-epicycles/3276/3 "2024-11-14T23:51:40Z")

</div>


