

github仓库: Silicon7921/FFT-image-drawing
输入经过特殊处理的svg数据即可画出该图像!这是本人的第一个用心做的python项目,在b站看到了大佬的作品,瞬间感到kirakiradokidoki于是就试着自己整了一个,代码粗糙请见谅。
项目文件夹内已经包含几个演示数据,想要测试项目不需要自己写path,只要选择预留的即可,测试门槛低,欢迎尝试!
以下是运行截图:图1 使用pyqt6制作的极为草率的配置窗口(太小传不上(恼))
图2 程序运行截图(图方便直接分别拉满了三个rgb值,具体可以自己调), 使用的是rikka_fixed
具体如何使用:
0. 配置运行环境
0. 1. 从官网安装python 3.12.5 x64
0. 2. clone本项目从github的在线仓库
0. 3. 使用vscode等代码编辑器或pycharm等ide打开项目文件夹,并根据requirements.txt安装需要的python模块。
1. 编写一个path文件(可选)
1. 1. 在adobe illustrator中绘制一个svg图片,要求只包含一条首尾闭合的路径
1. 2. 将导出的svg用文本编辑器打开,将path内容单独复制到一个文本文档内
1. 3. 将每个指令间的空格移除,将分割参数的空格替换为逗号到这里完成了path文件的编写。
2. 启动程序,完成配置并加载文件2. 1. 使用python执行main.py
2. 2. 在弹出的configuration窗口中的下拉列表内点选背景颜色,圆的颜色,轨迹颜色的rgb值(选择之后右侧会显示颜色预览,不选就是黑色)
2. 3. 在输入框中填写窗口大小,图像缩放和偏移,以及帧率(帧率低于刷新率会起到减速作用,高于刷新率不会加速)
2. 4. 在点击continue后弹出的文件选择框中选择正确的path文件,并点击确定至此,文件选择框关闭,你将看到程序的运行窗口,其中应当有正确的运行结果。
项目文件夹的文件们:
main.py:负责接收由fourier.py计算得出的数据并且按照它们渲染的程序。包含了冗长的pyqt6界面代码和写的稀烂的pygame代码。是整个项目的核心。
tosvg.py:这是一个简易的根据png图片生成svg的程序,但是产生的svg包含多条路径,格式也不对,不符合项目要求,于是它就成了一个废品(悲),但是费了一点力气所以没有删除,让它躺尸了。这个项目里用不到,也许会有其他用途吧,需要的话可以拿去呢。
fourier.py:负责处理path文件并且进行计算的程序。文件选择框也在它里面。里面有一堆史,不建议看。
path_*_*.txt:用于测试的path文件,不想要自己写path的话可以直接选择它们。它们分别是: 基础的几何图形,小鸟游六花,橘爱丽丝和佐城雪美。我画的不好,请见谅。
readme.md:github仓库的简介文件,为了契合github网站的风格全部用了工地英文(反正也没人看吧)内容不如这个帖子多。
requirements.txt:里面写了运行这个项目需要的所有python包(模块)。好一点的ide有根据它直接安装的功能。
LICENSE:记录项目开源协议的文件。这个项目是GPLv3。
.gitignore:记录了什么文件不会在与github仓库同步的时候更新。它只是方便我开发的。可以不管哦。
除错:常见异常的处理已经包含在代码逻辑内,可以通过查看输出同时对照源代码来判断是何种错误。
其他异常则是我写出来的bug或者异常处理不到位,属于本人python技术拉胯导致的问题,可以提交一个issue等我修复()
目前先写到这里,其他信息之后在楼下更新,有问题也欢迎提问,lz会尽力解答(希望别问代码的,我已经不记得我写了什么玩意了)




做的非常好!
文章很粗糙捏,这是由于只花了十分钟导致的。这只能算先行版,之后会有视频捏。