# 制作一个圆形飞轮 **Repository Path**: Red-Velvet/make-a-circular-flywheel ## Basic Information - **Project Name**: 制作一个圆形飞轮 - **Description**: 通过调节频率和画圆的总时间来实现连续圆环效果 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-20 - **Last Updated**: 2024-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 制作一个圆形飞轮 该项目模拟了圆形飞轮的实现过程 - 就如同我们研究$sin(\theta)$的时候,其中\theta往往写成弧度的形式,可以通过频率f去计算,即: - $e^{ik}$虽然能够很好的描述在复平面中单位圆上的点,但是在实际引用中已经旋转的角度/弧度 $k$往往不是给定值,也是通过$f$相关公式求得: - 公式是:$k=-2*\pi*f*t$ - 其中: - $2\pi $表示单位圆一周的弧度 - $f$表示飞轮旋转的速度(频率),它表示的意义是:画的有多快,即:每秒画完整$2\pi$的次数。例如:$f=2$表示,每秒画两个圆 - $t$表示已经旋转的时间 - $-1$表示要顺时针旋转【在有些文献中也可能忽略】 - 把$k=-2\pi ft$带入欧拉公式,即可得:$圆形飞轮=e^{-2\pi ift}$ - 所以利用欧拉公式在某一个频率$f$下“飞轮”画圆的效果如下: ![输入图片说明](%E9%A3%9E%E8%BD%AE%E7%94%BB%E5%9C%86.gif) - 基于以上公式,我们用Python实现的效果如下: ![输入图片说明](image.png) 本项目是在此基础上,改进一下实现连续圆环的效果 ## 项目运行效果截图 ![输入图片说明](%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%9C%86%E5%BD%A2%E9%A3%9E%E8%BD%AE.jpg) ## 功能 1. 定义绘制圆形轨迹的函数 2. 调节画圆的频率从0.1hz上升到2hz,每次调节改变0.01hz 3. 创建一个滑动条,用于调节画圆的频率,范围从 0.1 Hz 到 2 Hz,步长为 0.01 Hz 4. 创建一个滑动条,用于调节画圆的总时间,范围从 0 秒到 10 秒,步长为 0.1 秒 5. 使用 ipywidgets 的交互功能,将滑动条与绘制圆形轨迹的函数关联 ## 依赖 * numpy * matplotlib * ipywidgets * math ## 使用 1. 下载或克隆项目代码到本地。 2. 运行Jupyter Notebook文件 3. 只需要运行代码,即可看到绘制出的图像,分别为原始波形、去噪后的波形、原始振幅谱以及去噪后的振幅谱。 ## 注意 - 在这段代码中,f 是使用 ipywidgets 库创建的浮点滑块小部件。 - min:滑块的最小值, - max:滑块的最大值, - step:滑块的步长。 - value:滑块的初始值设置。 - description :滑块的标签设置为“f(hz)”或者“time(秒)”。 - “continuous_update”参数设置为False,这意味着滑块只有在用户释放滑块之后才会更新图形,而不是在用户拖动滑块时连续更新。