绘制彩虹 -《跟小海龟学Python》案例代码

这篇博客分享了《跟小海龟学Python》一书中的案例,通过Python代码详细解释如何绘制出一个彩虹效果,包括红、橙、黄、绿、蓝、靛、紫七种颜色以及白色组成的中空半圆环。代码使用了for循环来实现不同大小的填充半圆,形成彩虹图案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天分享新书《跟小海龟学Python》的案例代码:绘制彩虹 。

332097d30470bbd8674e9b811d69c614.jpeg

彩虹可由红(red)、橙(orange)、黄(yellow)、绿(green)、蓝(blue)、靛(cyan)、紫(purple)这七种颜色的半圆环组成,再加上一个白色(white)半圆使得彩虹中空。设定列表colors存储所有的颜色,利用for循环绘制从大到小的8个填充半圆,即可以得到如图所示的效果。

Python源代码:

from turtle import *  # 导入海龟绘图库

# 定义函数,画填充半圆(圆心坐标、半径、颜色)
def drawHalfDot(x
### Python `turtle` 库示例代码 #### 绘制简单图形 使用 `turtle` 库可以轻松创建各种几何形状。下面是一个绘制正方形的例子: ```python import turtle # 设置画布窗口大小 screen = turtle.Screen() screen.setup(400, 400) # 创建一个乌龟对象 pen = turtle.Turtle() for _ in range(4): # 正方形有四条边 pen.forward(100) # 向当前方向移动指定像素距离 pen.right(90) # 右转90度角 # 完成绘图后隐藏海龟图标并保持窗口打开直到点击关闭 pen.hideturtle() turtle.done() ``` 此段程序会启动一个新的图形界面,在其中显示由黑色线条构成的一个正方形[^1]。 #### 使用颜色填充多边形区域 除了简单的线框外,还可以通过设置笔触的颜色以及背景色来增强视觉效果。这里展示如何用不同色彩填满一个多边形内部空间的方法: ```python import turtle t = turtle.Pen() # 初始化Turtle绘画工具 colors = ["red", "purple", "blue", "green"] for i in range(100): t.pencolor(colors[i % 4]) # 循环改变四种颜色之一作为边界颜色 t.circle(i * 2) # 绘制半径逐渐增大的圆形轨迹 t.left(45) # 每次旋转一定角度以便形成螺旋状图案 turtle.bgcolor('black') # 将整个画布底色设为深邃夜空般的漆黑 turtle.mainloop() # 进入主事件循环等待用户交互操作完成后再退出 ``` 上述脚本执行完毕之后将会呈现出绚丽多彩的渐变圆圈围绕着中心点向外扩散的效果[^3]。 #### 构建彩虹桥结构模型 为了模拟自然界中的真实现象——彩虹,可以通过调整每一段弧线所使用的色调实现这一目标。以下是具体做法: ```python from math import sin, cos, pi import turtle as tt def draw_rainbow(radius=200, width=70): rainbow_colors = ['violet', 'indigo', 'blue', 'green', 'yellow', 'orange', 'red'] for color_index, arc_color in enumerate(rainbow_colors[::-1]): angle_step = (pi / radius)*(width*(len(rainbow_colors)-color_index)) tt.penup() tt.goto(-radius+(color_index*width), -(width//2)+(color_index*8)) # 调整起始位置使得各层不重叠 tt.setheading(90) tt.color(arc_color) tt.width(width-(color_index*10)) tt.pendown() while(tt.heading() >= -90-angle_step or abs(tt.xcor())<radius-width+((color_index)*width)): tt.right(angle_step/100) tt.forward(1) tt.speed('fastest') draw_rainbow() tt.done() ``` 这段代码定义了一个名为 `draw_rainbow()` 的函数用于构建七彩斑斓的拱门造型,并调用了该方法以实际渲染出完整的图像[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值