首页 > 其他分享 >5.10

5.10

时间:2024-06-06 22:25:58浏览次数:7  
标签:draw 60 5.10 三角形 绘制 order size

要求编程输出如下图示的字符分形图形(谢宾斯基三角形),要求提交源代码文件,其中源代码要求逐行注释。

谢宾斯基三角型字符分形图形.jpg 复制代码

import turtle
# 定义绘制谢宾斯基三角形的函数
def draw_sierpinski_triangle(t, order, size):
    # 递归结束条件:如果order为0,则绘制一个等边三角形
    if order == 0:
        for _ in range(3):
            t.forward(size)
            t.left(120)
    # 否则递归绘制三个更小的谢宾斯基三角形
    else:
        draw_sierpinski_triangle(t, order-1, size/2)  # 绘制左下角的小三角形
        t.forward(size/2)
        draw_sierpinski_triangle(t, order-1, size/2)  # 绘制上方的小三角形
        t.backward(size/2)
        t.left(60)
        t.forward(size/2)
        t.right(60)
        draw_sierpinski_triangle(t, order-1, size/2)  # 绘制右下角的小三角形
        t.left(60)
        t.backward(size/2)
        t.right(60)
def main():
    # 设置画布
    screen = turtle.Screen()
    screen.setup(width=800, height=800)
    screen.title("Sierpinski Triangle")
    # 创建画笔
    pen = turtle.Turtle()
    pen.speed(0)  # 设置绘制速度为最快
    # 接受用户输入,确保输入的层数在1到9之间
    while True:
        order = int(input("请输入谢宾斯基三角形的层数 (1-9):"))
        if 1 <= order <= 9:
            break
        else:
            print("输入错误,请输入1到9之间的数字!")
    # 移动画笔到初始位置
    pen.penup()
    # 修改初始位置为右下角
    pen.goto(20,200)
    pen.pendown()
    # 调整角度,使得谢宾斯基三角形朝上
    pen.right(120)  # 将角度调整为朝上
    # 绘制谢宾斯基三角形
    draw_sierpinski_triangle(pen, order, 600)
    # 隐藏画笔
    pen.hideturtle()
    # 显示绘制结果
    screen.mainloop()
if __name__ == "__main__":
    main()
复制代码

 

标签:draw,60,5.10,三角形,绘制,order,size
From: https://www.cnblogs.com/Christmas77/p/18236153

相关文章

  • 万兴全能格式转换器v15.5.10.97绿色版
    软件介绍万兴全能格式转换器,又叫万兴优转,国产全能音视频格式转换解决方案。具有音视频格式转换、合并视频、压缩视频、录制视频、下载视频、DVD刻录等功能。以超快的转换速度及强大的功能在国外名声大噪,转换速度是市面同类产品的30倍,操作简便,支持158种视频格式无损转换,批量转......
  • 2024.5.10(周五)总结
    【题目描述】所谓LRU算法,是指在发生缺页并且没有空闲主存块时,把最近最少使用的页面换出主存块,腾出地方来调入新页面。问题描述:一进程获得n个主存块的使用权,对于给定的进程访问页面次序,问当采用LRU算法时,输出发生的缺页次数。【练习要求】请给出源代码程序和运行测试结果,源代码程序......
  • 5.10T2
    给定一个01串,Alice和Bob轮流选择一个"01"子序列进行删除,Alice想要尽可能多,Bob想要尽可能少。求进行多少轮(要求整轮)。Alice一定会删相邻的,Bob一定会删首尾。正常做只能贪心,发现贪不动。然后最优化问题,有单调性,不妨考虑二分为\(k\)。判断根据贪心思想发现只需要保留前......
  • 2024.05.10
    所花时间(包括上课): 1 h左右代码量(行): 200  左右搏客量(篇):1了解到的知识点: ref和reactive备注(其他): ref和reactivereactive在修改响应式对象的时候,要用Object.assign(car,{brand:'xiaomi',price:20})需要一个基本类型的响应式数据,必须使......
  • 5.10
    IPv6vs.IPv4我一直对IPv6这个名字感到困惑,因为我觉得IPv4名字来源于它用来表示32位的四个字节,所以IPv6应该被称为IP16。但实际上,这只是协议的版本号。在IPv4推出之前,曾存在过IPv1、IPv2和IPv3,它们主要用于内部研究IP协议,后来被我们现在的IPv4所取代。在上世纪80年代,还提出过IP......
  • 5.10洛谷收获
    1.求幂函数#includepow(a,b);计算a的b次幂2.error:invalidtypes'int[int]'forarraysubscript|记住这个错误吧,犯过好多次了数组变量名不一致或者是没定义数组空间不够变量名和数组名重复定义3.快速幂快速幂本质上是一个倍增问题,比如说要求6的34次方如果34个6相乘......
  • 5.10
    jetpackcompose主题设计funEmailDetailAppBar(email:Email,isFullScreen:Boolean,modifier:Modifier=Modifier,onBackPressed:()->Unit){TopAppBar(modifier=modifier,title={Column(......
  • 2024.5.10家长会发言
    大家好,我是初三四班的学习委员包赟瑞,接下来由我来对半个学期的班级学习情况做一个总结。整体来看,全班的学习态度有一定进步,布置的打卡任务大多能按时完成。但是不能仅仅满足于此,像政治这种需要背诵的学科,许多同学在课下不爱背、不愿背,没有老师监督便开始摆烂,类似这样的不自律行为......
  • Pixelmator Pro 3.5.10 Flare (macOS Universal) - 专业图像编辑工具
    PixelmatorPro3.5.10Flare(macOSUniversal)-专业图像编辑工具Photoshop的卓越替代软件请访问原文链接:PixelmatorPro3.5.10Flare(macOSUniversal)-专业图像编辑工具,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgPixelmatorPro真正基于AppleMac......
  • 5.103 BCC工具之filegone.py解读
    一,工具简介filegone 追踪文件消失的原因,无论是被删除还是被重命名。二,代码示例#!/usr/bin/pythonfrom__future__importprint_functionfrombccimportBPFimportargparsefromtimeimportstrftime#argumentsexamples="""examples:./filegone......