使用python画出彩虹效果

本文介绍了一种使用Python和Turtle模块创建动态彩虹效果的方法。通过调整颜色和位置,生成了从左到右逐渐变化的彩虹图案,展示了如何将色彩理论应用于编程中。

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

python生成的彩虹效果,大家可以参考:

使用的python版本:3.7.0 ,以下为源代码:

# rainbow.py

from turtle import *
from random import *

def HSB2RGB(hues):
	hues = hues * 3.59 #100转成359范围
	rgb = [0.0,0.0,0.0]
	i = int(hues/60) % 6
	f = hues/60 - i
	if i == 0:
		rgb[0] = 1; rgb[1] = f;rgb[2] = 0
	elif i == 1:
		rgb[0] = 1-f; rgb[1] = 1;rgb[2] = 0
	elif i == 2:
		rgb[0] = 0; rgb[1] = 1;rgb[2] = f
	elif i == 3:
		rgb[0] = 0; rgb[1] = 1-f;rgb[2] = 1
	elif i == 4:
		rgb[0] = f; rgb[1] = 0;rgb[2] = 1
	elif i == 5:
		rgb[0] = 1; rgb[1] = 0;rgb[2] = 1-f
	return rgb

def rainbow():
	hues = 0.0
	color(1,0,0)
	#绘制彩虹
	hideturtle()
	speed(100)
	pensize(3)
	penup()
	goto(-400,-300)
	pendown()
	right(110)
	for i in range(100):
		circle(1000)
		right(0.13)
		hues = hues + 1
		rgb = HSB2RGB(hues)
		color(rgb[0], rgb[1], rgb[2])
	penup()


def main():
	setup(800, 600, 0, 0)
	bgcolor((0.5, 0.8, 1.0))
	tracer(False)
	rainbow()
	#输出文字
	goto(100,-100)
	pendown()
	color("red")
	write("Rainbow",align="center",font=("Script MT Bold", 80, "bold"))
	tracer(True)
	mainloop()


if __name__ == '__main__':
	main()

 

### 使用Python绘制彩虹的代码示例 以下是两种使用Python绘制彩虹的方法,分别基于`tkinter`和`turtle`库。 #### 方法一:基于`tkinter`的彩虹绘制 以下代码展示了如何使用`tkinter`库创建一个窗口并在其中绘制彩虹。通过`Canvas`组件的`create_arc`方法实现彩虹的弧形效果[^1]。 ```python import tkinter as tk # 创建主窗口 root = tk.Tk() root.title("彩虹") root.geometry("400x300") # 创建布 canvas = tk.Canvas(root, width=400, height=300, bg="#87CEEB") # 天蓝色背景 canvas.pack() # 绘制彩虹 def draw_rainbow(): center_x = 200 # 布中心 X center_y = 320 # 调整 Y 值使彩虹靠下 radius = 240 # 彩虹半径 colors = ['#FF0000', '#FF7F00', '#FFFF00', '#00FF00', '#0000FF', '#4B0082', '#9400D3'] # 彩虹颜色 for i in range(len(colors)): canvas.create_arc( center_x - (radius - i * 20), center_y - (radius - i * 20), center_x + (radius - i * 20), center_y + (radius - i * 20), start=0, extent=180, outline=colors[i], width=20, style=tk.ARC ) draw_rainbow() # 调用绘制彩虹函数 root.mainloop() # 运行主循环 ``` #### 方法二:基于`turtle`的彩虹绘制 以下代码展示了如何使用`turtle`库绘制彩虹。通过循环调用`turtle.circle`方法绘制多个半圆,形成彩虹效果[^2]。 ```python import turtle def draw_semi_circle(radius): """半圆函数""" turtle.penup() turtle.fd(radius) turtle.left(90) turtle.pendown() turtle.circle(radius, 180) turtle.penup() turtle.left(90) turtle.fd(radius) colors = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple'] # 彩虹颜色 width = 22 # 笔宽度 turtle.pensize(width) for i in range(7): radius = 20 + i * 20 # 设定半径 turtle.color(colors[i]) # 设定颜色 draw_semi_circle(radius) # 半圆 turtle.ht() # 隐藏turtle.done() # 完成绘制 ``` ### 注意事项 - 在`tkinter`方法中,需要确保正确设置窗口大小和布背景色以模拟天空效果。 - 在`turtle`方法中,可以通过调整笔宽度和半径来改变彩虹的外观。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值