すべてのペースト #8TEJPb32mH Raw 編集

text paste

公開 text v1 · 不変
·公開済み 2026-10-27 18:28 UTC
レンダリング済みのペースト本文
import turtleimport mathdef midpoint(p, q):    """返回两点中点"""    return ((p[0] + q[0]) / 2, (p[1] + q[1]) / 2)def midpoint_triangle(pts):    """返回三角形三边中点组成的三角形(顶点顺序与原三角形一致)"""    return [midpoint(pts[i], pts[(i + 1) % 3]) for i in range(3)]def draw_polygon(t, pts, fill=None, pen_color="black"):    """按给定顶点绘制多边形,可选填充颜色"""    t.penup()    t.goto(pts[0])    t.pendown()    t.pencolor(pen_color)    if fill is not None:        t.fillcolor(fill)        t.begin_fill()    for p in pts[1:]:        t.goto(p)    t.goto(pts[0])    if fill is not None:        t.end_fill()def main():    turtle.setup(700, 600)    turtle.title("嵌套正三角形")    t = turtle.Turtle()    t.speed(4)    t.pensize(2)    # 外三角形:边长 200,质心置于原点    s = 200    h = s * math.sqrt(3) / 2          # 高    T1 = [(-s / 2, -h / 3), (s / 2, -h / 3), (0, 2 * h / 3)]    # 中三角形:边长为 100,顶点为外三角形三边中点    T2 = midpoint_triangle(T1)    # 内三角形:边长为 50,顶点为中三角形三边中点    T3 = midpoint_triangle(T2)    # 1. 画外三角形(只描边)    draw_polygon(t, T1)    # 2. 画中三角形并整体填充黄色    draw_polygon(t, T2, fill="yellow")    # 3. 画内三角形并用背景色(白色)覆盖,    #    这样中三角形中“不与内三角形重叠”的部分就留下黄色    draw_polygon(t, T3, fill="white")    t.hideturtle()    turtle.done()if __name__ == "__main__":    main()