Go Fractals CLI
摘要
Go Fractals CLI是一个使用Go语言开发的命令行工具,用于生成ASCII艺术分形图案,支持谢尔宾斯基三角形和曼德博集合两种分形类型,支持多种可配置输出参数。
概述
Go Fractals CLI是一款生成ASCII艺术分形的命令行工具,支持两种分形类型,提供可配置的输出参数,输出结果直接打印至标准输出。
使用示例
# 生成谢尔宾斯基三角形
fractals sierpinski --size 32 --depth 5
# 生成曼德博集合
fractals mandelbrot --width 80 --height 24 --iterations 100
# 使用自定义字符生成谢尔宾斯基三角形
fractals sierpinski --size 16 --char '#'
# 查看帮助
fractals --help
fractals sierpinski --help命令说明
sierpinski
使用递归细分方法生成谢尔宾斯基三角形。 可用参数:
--size(默认值:32):三角形底边的字符宽度--depth(默认值:5):递归深度--char(默认值:*):填充点使用的字符 输出:按行打印三角形到标准输出。
mandelbrot
将曼德博集合渲染为ASCII艺术,会将迭代次数映射为对应字符。 可用参数:
--width(默认值:80):输出的字符宽度--height(默认值:24):输出的字符高度--iterations(默认值:100):逃逸计算的最大迭代次数--char(默认值:gradient):指定单个字符,留空则使用渐变字符集" .:-=+*#%@"输出:打印矩形分形图案到标准输出。
项目架构
cmd/
fractals/
main.go # 入口点,CLI初始化
internal/
sierpinski/
sierpinski.go # 分形算法实现
sierpinski_test.go
mandelbrot/
mandelbrot.go # 分形算法实现
mandelbrot_test.go
cli/
root.go # 根命令、帮助信息
sierpinski.go # 谢尔宾斯基子命令实现
mandelbrot.go # 曼德博子命令实现
依赖
- Go 1.21 及以上版本
github.com/spf13/cobra:用于CLI框架开发
验收标准
fractals --help可以正常显示使用说明fractals sierpinski可输出可识别的三角形fractals mandelbrot可输出可识别的曼德博集合--size、--width、--height、--depth、--iterations参数可正常工作--char参数可以自定义输出字符- 非法输入会输出清晰的错误信息
- 所有测试可以正常通过
关键要点
- 该工具是基于Go语言开发的命令行ASCII分形生成工具
- 支持谢尔宾斯基三角形、曼德博集合两种分形类型
- 所有输出直接打印到标准输出,支持自定义输出尺寸、渲染参数和填充字符
- 使用Cobra框架构建CLI,采用分层清晰的项目架构