python与分形0017 - 【教程】彩色色阶蛛网
2023-04-18 16:04:24 时间
前些天说到基础入门教程的时候,我们画了多边形,今天写一个简单点的教程,我们基于多边形做一个彩色色阶的蜘蛛网。
回顾下多边形和彩色多边形
多边形
直接贴代码,细节找旧文看。
def draw_gon(length, line):
angle = 360//line
for index in range(line):
turtle.goto(0, 0)
turtle.pendown()
turtle.seth(angle*index)
turtle.fd(length)
(x,y)=turtle.pos()
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.seth(angle*(index+1))
turtle.fd(length)
turtle.goto(x,y)
turtle.penup()
五边形
六边形
360边形
彩色多边形
直接贴代码,细节找旧文看。
def draw_gon(length, start_angle, line):
angle = 360//line
for index in range(line):
(r,g,b) = colorsys.hsv_to_rgb(index/line,1,1)
turtle.color((r,g,b))
turtle.goto(0, 0)
turtle.begin_fill()
turtle.pendown()
turtle.seth(start_angle + angle*index)
turtle.fd(length)
(x,y)=turtle.pos()
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.seth(start_angle+angle*(index+1))
turtle.fd(length)
turtle.goto(x,y)
turtle.penup()
turtle.end_fill()
彩色五边形示例:
彩色五边形
彩色360边形
彩色色阶蛛网
想要画一个彩色色阶的蛛网,需要解决2个数学问题:
- 蛛网和多边形是什么关系?
- 彩色色阶的循环如何实现?
先来说第1个问题,其实很简单,不同边长的多边形嵌套形成的就是蛛网。
如下图:
蛛网
再来说第2个问题,看下面的图:
蛛网色阶原理
因为是纵向的色阶,那么:
1、2、3、4连环色,5、6、7、8连环色,9、10、11、12连环色,13、14、15、16连环色 ···
基于此,有两种实现方式:
- 方式一:按1、2、3、4、5的顺序画三角形,色阶自然顺序。
- 方式二:按1、5、9、13的顺序画三角形,色阶跳跃处理。
由于前面写的draw_gon
函数是按方式二实现的,我们就按第二个方式实现。
def draw_gon(length, start_angle, line, color_start, color_step):
angle = 360//line
for index in range(line):
(r,g,b) = colorsys.hsv_to_rgb((index+color_start+color_step)/line,1,1)
turtle.color((r,g,b))
turtle.goto(0, 0)
turtle.begin_fill()
turtle.pendown()
turtle.seth(start_angle + angle*index)
turtle.fd(length)
(x,y)=turtle.pos()
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.seth(start_angle+angle*(index+1))
turtle.fd(length)
turtle.goto(x,y)
turtle.penup()
turtle.end_fill()
效果图:
蛛网色阶原理
相关文章
- Python使用tkinter组件Label显示简单数学公式
- 内网渗透之DCOM横向移动
- 以目标为导向的语义交流的共同语言——一个课程学习框架
- python爬虫前奏【成信笔记】
- HTML 5 File API:文件拖放上传功能
- 教你快速创建 Python 虚拟环境
- pyenv 实现Python多版本自由切换
- 用 Python 对 Excel文件进行批量操作
- Python - 接入钉钉机器人
- Python - 抓取 iphone13 pro 线下店供货信息并发送到钉钉机器人,最后设置为定时任务
- crontab - 解决 mac 下通过 crontab 设置了 Python 脚本的定时任务却无法运行
- [源码解析] PyTorch分布式(5) ------ DistributedDataParallel 总述&如何使用
- Python科普系列——类与方法(上篇)
- SAP对STO的交货单执行PGI,报错 -Fld selectn for mvmt type 643 acct 400020 differs
- Spring Boot 实现通用 Auth 认证的 4 种方式
- 盘点4种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据
- OushuDB 学习经验分享(三):技术特点
- Java和Python思维方式的不同之处
- Python中日志记录新技能
- 奥比中光Gemini OpenCV—Python使用