PyQt绘制科赫雪花
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QBrush, QPen
from PyQt5.QtCore import Qt


class KochCurveWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(0, 0, 1108, 900)
        self.setWindowTitle('Koch Curve')

    def paintEvent(self, event):
        painter = QPainter(self)

        painter.setRenderHint(QPainter.Antialiasing)

        pen = QPen(Qt.black)
        pen.setWidth(2)
        painter.setPen(pen)

        # 抽象步骤,如果是0阶,只需前行;如果是一阶,需要前行,转向,前行,转向,前行,转向,前行,
        # 共有的是前行,阶数需要控制转向的次数,所以边界是0阶,只需前行
        def koch(length, n):
            if n == 0:
                painter.drawLine(0, 0, length, 0)
                painter.translate(length, 0)
            else:
                #
                for angle in [0, -60, 120, -60]:
                    painter.rotate(angle)
                    koch(length / 3, n - 1)

        painter.translate(250, 250)
        for i in range(3):
            koch(600, 2)
            painter.rotate(120)


app = QApplication(sys.argv)
koch_curve_widget = KochCurveWidget()
koch_curve_widget.show()
sys.exit(app.exec_())

三阶科赫雪花

Python-科赫雪花(科克曲线)_StarLord007的博客-CSDN博客_科克雪花曲线

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

评论

  1. 搞机小菜鸟
    1 年前
    2023-2-04 15:42:13

    支持大佬,给大佬点赞

    • 博主
      搞机小菜鸟
      1 年前
      2023-2-04 15:52:34

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇