旋涡彩虹

# -*- coding: utf-8 -*-
"""
旋涡彩虹
"""
import turtle    # 要用到turtle库中的函数,turtle库是一个绘制图像的函数库,横轴为x轴,纵轴为y轴
q = turtle.Pen()
turtle.bgcolor("black")   #画布颜色
sides = 7
colors = ["red","cyan","blue","yellow","orange","green","purple"]    #画笔颜色
for x in range(360):     #循环 就是把每个元素代入变量x,然后执行缩进块的语句     range()函数,可以生成一个整数序列,再通过list()函数可以转换为list
    q.pencolor(colors[x%sides])     # 改变画笔颜色,参数为颜色
    q.forward(x*3/sides+x)      #其中的forward是一个前向传播函数
    q.left(360/sides+1)     #转360次,每次的画笔宽度+1
    q.width(x*sides/200)    #画笔宽度

 

好的,这是一个比较复杂的需求,需要使用PyQt5的QPainter和QTimer类来实现。以下是一个简单的示例代码,可以让你开始实现这个功能: ```python import sys from PyQt5.QtCore import Qt, QTimer from PyQt5.QtGui import QColor, QPainter from PyQt5.QtWidgets import QApplication, QWidget, QPushButton class RainbowWidget(QWidget): def __init__(self): super().__init__() # 初始化变量 self.angle = 0 self.clockwise = True self.colors = [Qt.red, Qt.yellow, Qt.green, Qt.cyan, Qt.blue, Qt.magenta] # 创建按钮 self.button = QPushButton("反转方向", self) self.button.setGeometry(10, 10, 100, 30) self.button.clicked.connect(self.reverse_direction) # 创建定时器 self.timer = QTimer(self) self.timer.timeout.connect(self.update) self.timer.start(50) def paintEvent(self, event): painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing) # 旋转坐标系 painter.translate(self.width() / 2, self.height() / 2) painter.rotate(self.angle) # 绘制彩虹 for i in range(6): painter.setBrush(QColor(self.colors[i])) painter.drawEllipse(-100 + i * 20, -100 + i * 20, 200 - i * 40, 200 - i * 40) # 更新角度 if self.clockwise: self.angle += 1 else: self.angle -= 1 def reverse_direction(self): self.clockwise = not self.clockwise def update_colors(self): # 更新颜色 self.colors.append(self.colors.pop(0)) def update(self): self.update_colors() self.update() if __name__ == '__main__': app = QApplication(sys.argv) widget = RainbowWidget() widget.resize(400, 400) widget.show() sys.exit(app.exec_()) ``` 这个示例代码实现了一个旋转的彩虹漩涡,颜色不断变化,并且可以通过按钮控制顺时针和逆时针旋转。你可以根据自己的需求对代码进行修改和优化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lanlingxueyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值