首页 > 其他分享 >每日总结2023/4/5(分型图形设计)

每日总结2023/4/5(分型图形设计)

时间:2023-04-06 21:55:29浏览次数:44  
标签:turtle get mid 分形 points 2023 图形 分型 my

分形
分形,具有以非整数维形式充填空间的形态特征。通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。分形(Fractal)一词,是芒德勃罗创造出来的,其原意具有不规则、支离破碎等意义。1973年,芒德勃罗(B.B.Mandelbrot)在法兰西学院讲课时,首次提出了分维和分形的设想。

turtle模块时python自带的一个绘图模块,俗称海龟绘图.

常用方法
方法 描述 简写

 

 

分形的特点是放大图形的任一局部和整体具有自相似性,这个特点刚好和递归函数的性质相似,所以今天我们通过调用海龟模块使用递归函数来绘制分形图

from turtle import *  # 导入海龟模块
 
my_turtle = Turtle()  # 创建海龟对象
my_win = my_turtle.getscreen()  # 创建屏幕对象
 
def draw_spiral(my_turtle,linelen):  # 定义绘制螺旋线的递归函数
    if linelen > 0:  # 递归边界
        my_turtle.fd(linelen)
        my_turtle.rt(90)
        draw_spiral(my_turtle,linelen-5)  # 递归调用
 
my_turtle.speed(10)
my_turtle.up()
my_turtle.goto(-200,200)
my_turtle.down()
draw_spiral(my_turtle,300)
my_turtle.hideturtle()  # 隐藏海龟
my_win.exitonclick()  # 为保证绘制完成后不自动退出,使用这个方法点击后关闭窗口

 

 

import random
from turtle import *
 
my_turtle = Turtle()
my_win = my_turtle.getscreen()
 
def tree(branch_len,t):
    if branch_len > 5:
        if branch_len <= 20:
            t.pencolor('green')  # 当树枝很小时,画笔绿色.模拟树叶
        else:
            t.pencolor('black')
        t.pensize(branch_len//10)  # 随着递归的进行 树枝越来越细
        t.fd(branch_len)
        degree = random.randint(15,30)  # 随机角度
        t.rt(degree)
        gap = random.uniform(10,15)  # 随机减少的增量
        tree(branch_len-gap,t)
        t.lt(2*degree)
        tree(branch_len-gap, t)
        t.rt(degree)
        t.backward(branch_len)
my_turtle.setheading(90)
my_turtle.speed(10)
my_turtle.up()
my_turtle.backward(300)
my_turtle.down()
tree(100,my_turtle)
 
my_win.exitonclick()

 

 

from turtle import *
 
def draw_triangle(points,color,t):
    '''给定三个点绘制三角形'''
    t.fillcolor(color)
    t.up()
    t.goto(points[0])
    t.down()
    t.begin_fill()
    t.goto(points[1])
    t.goto(points[2])
    t.end_fill()
 
def get_mid(p1,p2):
    '''求中点'''
    return ((p1[0] +p2[0]) / 2,(p1[1] +p2[1]) / 2)
 
def sierpinski(points,depth,t):
    color_map = ['black','white','yellow','red','pink','purple','orange','cyan','violet'
                 ,'blue','green']
    draw_triangle(points,color_map[depth],t)
    if depth > 0:  # 当递归深度大于0时,在3各小三角形中递归调用谢尔宾斯基三角形
        sierpinski([points[0],get_mid(points[0],points[1]),\
                    get_mid(points[0],points[2])],depth-1, t)
        sierpinski([points[1],get_mid(points[0],points[1]),\
                    get_mid(points[1],points[2])],depth-1, t)
        sierpinski([points[2],get_mid(points[0],points[2]),\
                    get_mid(points[1],points[2])],depth-1, t)
 
my_turtle = Turtle()
my_turtle.speed(10)
my_win = my_turtle.getscreen()
screensize(1600,900)
 
my_points = [(-300,-250),(0,300),(300,-250)]
sierpinski(my_points,8,my_turtle)
 
my_win.exitonclick()

 

 参考文档

(28条消息) 轻松一下:python(turtle模块)绘制分形图_python分形_Morbidmuse的博客-CSDN博客

标签:turtle,get,mid,分形,points,2023,图形,分型,my
From: https://www.cnblogs.com/azwz/p/17294348.html

相关文章

  • JavaWeb-Cookie-16课-2023-04-06
    packagecom.feijian.servlet;importjavax.servlet.ServletException;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOExc......
  • 总结20230406
    今天周四,又是一周内最轻松的一天。今天羽毛球课主要是打比赛,目前比赛第一轮已结束,目前战绩是三胜三负,可惜说有两场输的确实不应该。再接再厉,迎接接下来的比赛。今天要复习蓝桥杯的,确实该复习了,还有一天。 ......
  • 记录一次Mac通过frp内网穿透远程连接开发板的图形化桌面的操作过程
    简介使用Mac通过frp内网穿透远程连接开发板的图形化桌面,觉得比较有趣,记录成文PS:家里屏幕有限,公司里也一样,所以在开发板运行一些基础程序,需要用到一些图形化程序。(比如shellclash就没跑通,需要换一个图形化程序)前置准备硬件:macbookpro2020tinkerBoard2s,OperatingSys......
  • 2023年快消行业企业CRM数字化转型服务商调研与案例解析
    近年来,“数字化转型是公司最重要的战略方向之一”已成为消费品零售企业的共识。越来越多企业开始更主动、更广泛深入地利用数字化、智能化的手段来“修炼内功”,以降低外部环境的影响,并通过技术创新、模式创新、业态创新等技术手段,不断夯实核心业务竞争力,从而将挑战转化成机遇。 ......
  • 2023春招总结
       从3月14日到3月30日的春招总算结束了!最后选择柏楚啦,虽然说主要考虑公司的发展前景,其实更关注同事之间的氛围,另外最后还是选择做应用软件而不是嵌入式~现在的情况就是,努力工作,好好刷题!......
  • 2023.4.6学习记录
    p15神经网络_卷积层importtorchimporttorchvisionfromtorchimportnnfromtorch.nnimportConv2dfromtorch.utils.dataimportDataLoaderfromtorch.utils.tensorboardimportSummaryWriter#准备测试集dataset=torchvision.datasets.CIFAR10("dataset",train=False,......
  • 2023年4月6日
    计划完成ppt执行10点34分  才开始,做ppt记录已解决项目管理:实现对不同项目的管理,包括项目的创建、修改、删除等操作。实现接口管理:实现对接口的管理,包括接口的创建、修改、删除等操作,以及接口的查询和统计功能。实现可视化接口编辑:提供可视化的接口编辑界面,方便用户......
  • 2023.4.5每日总结
    二进制存储packagepdf;importjava.io.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;publicclassout{publicbooleanin(Filefile)throwsException{Class.forName("com.mysql.jdbc.Driver");......
  • 2023.4.6每日总结
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"&g......
  • 20230406-Python-if判断-day4
    条件语句4月6场景假设:网吧上网去⽹吧进⻔想要上⽹必须做的⼀件事是做什么?(考虑重点)为什么要把身份证给⼯作⼈员?是不是就是为了判断是否成年?是不是如果成年可以上⽹?如果不成年则不允许上⽹?其实这⾥所谓的判断就是条件语句,即条件成⽴执⾏某些代码,条件不成⽴则不执⾏这些......