绘制谢尔宾斯基三角形

本文介绍如何利用Python的turtle库绘制谢尔宾斯基三角形。首先定义了一个`draw_triangle`函数来画出基本三角形,然后定义了`get_mid`函数计算两点的中点坐标。接着,`sierpinski_triangle`函数递归地绘制更小的三角形,直至边长小于10。最后,调用`sierpinski_triangle`函数并传入初始三角形的顶点坐标来开始绘制过程。
摘要由CSDN通过智能技术生成

import turtle

import math

 

turtle.speed(100)

'''

 通过连接 3 个点的方式绘制三角形

 pos是元组的元组((x1,y1),(x2,y2),(x3,y3))

'''

def draw\_triangle(pos):

    turtle.penup()

    # 移到第一个点

    turtle.goto(pos[0])

    turtle.pendown()

    # 连接 3 个点

    for i in [1, 2, 0]:

        turtle.goto(pos[i])

  

# 计算三角形任意两边的中点坐标

def get\_mid(p1, p2):

    return (p1[0] + p2[0]) / 2, (p1[1] + p2[1]) / 2

 

'''

绘制 谢尔宾斯基三角形

'''

def sierpinski\_triangle(*pos):

    # 用给定的点绘制三角形

    draw_triangle(pos)

    p1, p2, p3 = pos

    # 计算三角形的边长

    side = math.fabs((p3[0] - p1[0]) / 2)

    # 如果边长满足条件,继续绘制其它三角形

    if side > 10:

        # p1和p2线段 的中心点

        p1_p2_center_x, p1_p2_center_y = get_m

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值