MadeStone

Coding Challenge #130.1: Drawing with Fourier Transform and Epicycles

Просмотры:
34
Дата загрузки:
29.11.2023 09:20
Длительность:
00:46:09
Категория:
Обучение

Описание

In this coding challenge, I implement the Discrete Fourier Transform algorithm in JavaScript and render a drawing using epicycles derived from the transform. Code: https://thecodingtrain.com/challenges/130-drawing-with-fourier-transform-and-epicycles

p5.js Web Editor Sketches:
?️ Fourier Transform: https://editor.p5js.org/codingtrain/sketches/RfrZibjfL
?️ Fourier Transform - user-drawn path: https://editor.p5js.org/codingtrain/sketches/jawHqwfda
?️ Fourier Transform - complex numbers: https://editor.p5js.org/codingtrain/sketches/ldBlISrsQ
?️ Fourier Transform - user-drawn path with complex numbers: https://editor.p5js.org/codingtrain/sketches/sPvZsg2w4

Other Parts of this Challenge:
? Part 2: https://youtu.be/n9nfTxp_APM
? Part 3: https://youtu.be/7_vKzcgpfvU

? Previous video: https://youtu.be/X8bXDKqMsXE?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH
? Next video: https://youtu.be/0j86zuqqTlQ?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH
? All videos: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH

References:
? Coding Train Logo: https://twitter.com/TomFevrier/status/1079437780466520065
? p5.FFT: https://p5js.org/reference/#/p5.FFT
? FFT on Algorithm Archive: https://www.algorithm-archive.org/contents/cooley_tukey/cooley_tukey.html
? Discrete Fourier transform on Wikipedia: https://en.wikipedia.org/wiki/Discrete_Fourier_transform
? Complex Number on Wikipedia: https://en.wikipedia.org/wiki/Complex_number

Videos:
? But what is the Fourier Transform? A visual introduction: https://youtu.be/spUNpyF58BY
? Fourier Analysis For The Rest Of Us: https://youtu.be/2hfoX51f6sg
? Epicycles, complex Fourier series and Homer Simpson's orbit: https://youtu.be/qS4H6PEcCCA
? Code Train Live 165: https://youtu.be/0b3R8oWffkw?t=2657s

Related Coding Challenges:
? #125 Fourier Series: https://youtu.be/Mm2eYfj0SgA

Timestamps:
0:00 Introducing today's topic: a Fourier transform drawing machine
1:29 Fourier transform algorithm
3:08 Signal processing
5:49 Make a signal array
12:09 Euler's formula
15:34 Write the discrete Fourier transform function
21:50 What do we need for a circular epicycle?
22:47 Calculate the amplitude, frequency, and phase
26:30 Calculate amount of time to move per frame of animation
29:44 Draw an arbitrary path for both x and y
31:07 Write an epiCycles() function
34:30 Have epiCycles() return a vector with an x and y
38:59 Grab the path of the Coding Train logo
41:38 Render the epiCycles by order of amplitude
43:57 Conclusion and next steps

Editing by Mathieu Blanchette
Animations by Jason Heglund
Music from Epidemic Sound

? Website: http://thecodingtrain.com/
? Share Your Creation! https://thecodingtrain.com/guides/passenger-showcase-guide
? Suggest Topics: https://github.com/CodingTrain/Suggestion-Box
? GitHub: https://github.com/CodingTrain
? Discord: https://thecodingtrain.com/discord
? Membership: http://youtube.com/thecodingtrain/join
? Store: https://standard.tv/codingtrain
?️ Twitter: https://twitter.com/thecodingtrain
? Instagram: https://www.instagram.com/the.coding.train/

? Coding Challenges: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH
? Intro to Programming: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA

? p5.js: https://p5js.org
? p5.js Web Editor: https://editor.p5js.org/
? Processing: https://processing.org

? Code of Conduct: https://github.com/CodingTrain/Code-of-Conduct

This description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecodingtrain.com/issues/new

#fouriertransformsquarewave #discretefouriertransform #epicyclesdrawing #javascript #p5js

Источники:

Рекомендуемые видео