Turtle库绘制话筒符号

使用Python Turtle库绘制话筒符号

要使用Python的Turtle库绘制一个蓝色话筒符号,可以按照以下步骤操作。以下代码会创建一个500×600像素的画布,并使用15像素宽的蓝色画笔绘制话筒符号。

import turtle
import math

t = turtle.Turtle()
t.hideturtle()
t.speed(0)
t.pensize(15)
t.color("blue")

cx = 0
top_cy = 140
r = 80
line_len = 150
steps = 120

upper_points = []
for i in range(steps + 1):
    theta = math.pi * (1 - i / steps)
    x = cx + r * math.cos(theta)
    y = top_cy + r * math.sin(theta)
    upper_points.append((x, y))

t.penup()
t.goto(upper_points[0])
t.pendown()
for p in upper_points[1:]:
    t.goto(p)
t.penup()

upper_left = upper_points[0]
upper_right = upper_points[-1]


t.goto(upper_left)
t.setheading(270)
t.pendown()
t.forward(line_len)
t.penup()
left_bottom = t.position()

t.goto(upper_right)
t.setheading(270)
t.pendown()
t.forward(line_len)
t.penup()
right_bottom = t.position()

down_cy = left_bottom[1]

down_points = []
for i in range(steps + 1):
    theta = math.pi * (i / steps)  # 0 → pi
    x = cx + r * math.cos(theta)
    y = down_cy - r * math.sin(theta)
    down_points.append((x, y))

t.goto(down_points[0])
t.pendown()
for p in down_points[1:]:
    t.goto(p)
t.penup()



big_gap = 40
big_r = 100

big_top_cy = down_cy - big_gap

big_left = (cx - big_r, big_top_cy)
big_right = (cx + big_r, big_top_cy)

big_arc_points = []
for i in range(steps + 1):
    theta = math.pi * (i / steps)
    x = cx + big_r * math.cos(theta)
    y = big_top_cy - big_r * math.sin(theta)
    big_arc_points.append((x, y))

t.goto(big_arc_points[0])
t.pendown()
for p in big_arc_points[1:]:
    t.goto(p)
t.penup()

center_top = big_arc_points[steps // 2]

t.goto(center_top)
t.setheading(270)
t.pendown()

down_len = 140
t.forward(down_len)
t.penup()

center_bottom = t.position()


base_half = 80

t.goto(center_bottom)
t.setheading(180)
t.pendown()
t.forward(base_half)

t.penup()
t.goto(center_bottom)
t.setheading(0)
t.pendown()
t.forward(base_half)
t.penup()

turtle.done()

结果如下:

Turtle库绘制话筒符号

© 版权声明

相关文章

暂无评论

none
暂无评论...