离散傅里叶变换:绘制你的本轮图

Instructions
[size=150][b]1.[/b] 使用钢笔工具[icon]/images/ggb/toolbar/mode_pen.png[/icon] 在顶部图形视图中绘制一个闭合的环。[br][br][b]2. [/b]然后选择 [icon]/images/ggb/toolbar/mode_move.png[/icon] 然后[b]点击[/b] 底部的 [b]Plot Epicycles绘制本轮图[/b]按钮(位于底部图形视图中)。[br][br][b]3.[/b] 选择一个对象,然后使用右侧角落中的菜单 来更改其样式(颜色、大小)。[br][br][b]4.[/b] 尽情享受吧!!!Have Fun!!![br][br]注意:您可以下载自己的创作成果。如果您希望与他人分享,可以通过发送推文的方式联系我:@jcponcemath[br][br][b]Note:[/b] You can download your creation. If you like to share it, send me a tweet: [url=https://twitter.com/jcponcemath]@jcponcemath[/url][br][/size]
Acknowledgements
Special thanks to [url=https://www.geogebra.org/u/thijs]Thijs[/url] who helped me to improve the script and performance. See this [url=https://www.geogebra.org/p/no1Fv72PPX0]thread[/url] for details.
20260801 修改自:[url=https://www.geogebra.org/u/jcponce]Juan Carlos Ponce Campuzano[/url] — 2020年12月6日 - 下午3:00 的 [url=https://www.geogebra.org/m/vxztu2cu]Discrete Fourier Transform: Draw your system of epicycles – GeoGebra[br][br][/url]A
傅里叶级数绘本[br][br][url=https://www.geogebra.org/m/t9uspumz]Fourier series and Discrete Fourier transform – GeoGebra[/url][br][br][br]A[br][url=https://mathed.miamioh.edu/index.php/ggbj/issue/view/15]Vol. 11 No. 1 (2023): North American GeoGebra Journal | North American GeoGebra Journal[br][br][br][/url][url=https://mathworld.wolfram.com/]Wolfram MathWorld: The Web's Most Extensive Mathematics Resource[/url][br][br][br][br]A[br]
[br][br]cond=true[br]设置标注(cond,Show stroke)[br][br]userdraw=true[br][br]Sx={}[br][br]buttClear=按钮("Clear")[br]#脚本:[br]删除(stroke1)[br]赋值(Sx,{})[br]删除(M)[br]删除(N)[br]删除(Lm)[br]删除(t)[br]赋值(userdraw, false)[br][br][br]button4=按钮("Save png")[br]#脚本:[br]导出图片("filename", "dft-epicycles.png", "scalecm", 1, "dpi", 300, "view", 1)[br][br][br]button1=按钮("Setup")[br]#脚本:[br]Sx= 复制自由对象(去除未定义对象(序列(描点(stroke1, k/45), k, 1, 45)))[br][br]N = 长度(Sx)[br]LN = 序列(N)[br][br]#===========================================[br]# Shift zero-frequency component to center of spectrum.[br]#===========================================[br][br]Lk = LN-1-商式(N,2) [br][br]#================================[br]# Calculate DFT: LX is a list of frequencies [br]#================================[br][br]LX = 1/N*映射(总和(映射( (abs(P); arg(P)-2 * pi * k * (n-1) / N), P, Sx, n, LN)), k, Lk)[br][br]#===============================[br]# Lj : frequency index sorted by size (abs)[br]#===============================[br][br]LAs= 逆序排列(升序排列(映射((abs(X), n), X, LX, n, LN)))[br]Lj = 映射(y(As), As, LAs)[br][br]#=============================[br]# Use the first M greatest frequencies[br]#=============================[br][br]M = 滑动条(1, N, 1, 1, 160, false, true, false, false)[br]赋值(M, N)[br]设置标注(M, "n")[br]设置标签模式(M, 9)[br]设置可见性(M, 1, false)[br]设置可见性(M, 2, false)[br]Lm = 序列(1, M)[br][br]Lks= 最前元素(映射(元素(Lk, j), j, Lj), M)[br]LXs= 最前元素(映射(元素(LX, j), j, Lj), M)[br]LRs= 最前元素(映射(x(As), As, LAs), M)[br][br]#==========================[br]# Plot M epicycles[br]#==========================[br][br]t = 滑动条(0, 2 * pi, 0.0099, 0.5, 150, false, true, false, false)[br][br]LC1= 映射(总和(映射((abs(X); arg(X) + k * t), X, 最前元素(LXs, m), k, Lks)), m, Lm )[br]LC = 合并({(0, 0)}, LC1)[br][br]Plast = 最后元素(LC)[br]设置可见性(Plast, 1, true)[br]设置可见性(Plast, 2, false)[br]设置图层(Plast, 3)[br]设置颜色(Plast, "Red")[br]PolyL = 折线(LC)[br]设置可见性(PolyL, 1, true)[br]设置可见性(PolyL, 2, false)[br]设置图层(Plast, 2)[br]Epicycles = 映射(圆周(元素(LC, m), R), m, Lm, R, LRs)[br]设置可见性(Epicycles, 1, true)[br]设置可见性(Epicycles, 2, false)[br]设置图层(Epicycles, 1)[br][br]#===========================================[br]# Parametric curve: Inverse of Discrete Fourier Transform[br]#===========================================[br][br]PolyOrbit = 多边形(合并(Sx, 最前元素(Sx)))[br]设置可见性(PolyOrbit , 1, true)[br]设置可见性(PolyOrbit , 2, false)[br]设置填充(PolyOrbit, 0)[br]显示标签(PolyOrbit , false)[br][br]#==========================[br]# Extras: Settings[br]#==========================[br][br]赋值(t,0)[br]启动动画(t, true)[br]设置可见性(t, 1, false)[br]设置可见性(t, 2, true)[br][br]设置可见性(LX , 1, false)[br]设置可见性(LAs, 1, false)[br]设置可见性(LXs, 1, false)[br]设置可见性(LC1, 1, false)[br]设置可见性(LC , 1, false)[br][br]设置可见性(LX , 2, false)[br]设置可见性(LAs, 2, false)[br]设置可见性(LXs, 2, false)[br]设置可见性(LC1, 2, false)[br]设置可见性(LC , 2, false)[br][br]显示标签(PolyL, false)[br]赋值(txtError, false)[br]赋值(cond, false)[br]设置显示条件(stroke1, cond)[br][br][br][br][br]

Información: 离散傅里叶变换:绘制你的本轮图