Coding Challenge 130: Fourier Transform User Drawing

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... p5.js Web Editor Sketches: šŸ•¹ļø Fourier Transform: https://editor.p5js.org/codingtrain/s... šŸ•¹ļø Fourier Transform - user-drawn path: https://editor.p5js.org/codingtrain/s... šŸ•¹ļø Fourier Transform - complex numbers: https://editor.p5js.org/codingtrain/s... šŸ•¹ļø Fourier Transform - user-drawn path with complex numbers: https://editor.p5js.org/codingtrain/s... Other Parts of this Challenge: šŸ“ŗ Part 1 - Drawing with Fourier Transform and Epicycles :    • CodingĀ ChallengeĀ #130.1:Ā DrawingĀ withĀ Four...Ā Ā  šŸ“ŗ Part 3 - Complex Numbers:    • CodingĀ ChallengeĀ 130:Ā FourierĀ TransformĀ Dr...Ā Ā  šŸŽ„ Previous video:    • CodingĀ ChallengeĀ #129:Ā KochĀ FractalĀ SnowflakeĀ Ā  šŸŽ„ Next video:    • CodingĀ ChallengeĀ 131:Ā BouncingĀ DVDĀ LogoĀ Ā  šŸŽ„ All videos:    • CodingĀ ChallengesĀ Ā  References: šŸš‚ Coding Train Logo: Ā Ā /Ā 1079437780466520065Ā Ā  šŸ’¾ p5.FFT: https://p5js.org/reference/#/p5.FFT šŸ’¾ FFT on Algorithm Archive: https://www.algorithm-archive.org/con... šŸ—„ Discrete Fourier transform on Wikipedia: https://en.wikipedia.org/wiki/Discret... šŸ—„ Complex Number on Wikipedia: https://en.wikipedia.org/wiki/Complex... Videos: šŸŽ„ But what is the Fourier Transform? A visual introduction:    • ButĀ whatĀ isĀ theĀ FourierĀ Transform?Ā Ā AĀ visu...Ā Ā  šŸŽ„ Fourier Analysis For The Rest Of Us:    • FourierĀ AnalysisĀ ForĀ TheĀ RestĀ OfĀ UsĀ Ā  šŸŽ„ Epicycles, complex Fourier series and Homer Simpson's orbit:    • Epicycles,Ā complexĀ FourierĀ seriesĀ andĀ Home...Ā Ā  šŸ”“ Code Train Live 165:    • CodingĀ TrainĀ LiveĀ 165:Ā DrawingĀ withĀ Fourie...Ā Ā  Related Coding Challenges: šŸš‚ #125 Fourier Series:    • CodingĀ ChallengeĀ 125:Ā FourierĀ SeriesĀ Ā  Timestamps: 0:00 Fourier Transform and Epicycles Part 2 - render a user-drawn path 1:20 Create a state variable 2:18 When the mouse is pressed, set the state as "user" 4:18 Render points while the user is drawing 6:48 Reset variables 7:38 Fix offset 8:38 Up next: have the inputs be complex numbers Editing by Mathieu Blanchette Animations by Jason Heglund Music from Epidemic Sound šŸš‚ Website: http://thecodingtrain.com/ šŸ‘¾ Share Your Creation! https://thecodingtrain.com/guides/pas... 🚩 Suggest Topics: https://github.com/CodingTrain/Sugges... šŸ’” GitHub: https://github.com/CodingTrain šŸ’¬ Discord: https://thecodingtrain.com/discord šŸ’– Membership: http://youtube.com/thecodingtrain/join šŸ›’ Store: https://standard.tv/codingtrain šŸ–‹ļø Twitter: Ā Ā /Ā thecodingtrainĀ Ā  šŸ“ø Instagram: Ā Ā /Ā the.coding.trainĀ Ā  šŸŽ„ Coding Challenges:    • CodingĀ ChallengesĀ Ā  šŸŽ„ Intro to Programming:    • StartĀ learningĀ here!Ā Ā  šŸ”— 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-o... This description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecod... #fouriertransformsquarewave #discretefouriertransform #epicyclesdrawing #javascript #p5js