1.使用变量保存多边形的边数,绘制一个多边形,画笔颜色为蓝色。
方法一:
import turtle
n = int(input("请输入多边形的边数:"))
p = turtle.Pen()
#turtle.setup(800,600)
turtle.bgcolor("red")
p.color("yellow")
p.pencolor("blue")
p.penup()
p.goto(50,50) #起点
p.pendown()
for i in range(n):
p.right(360/n)
p.forward(80) #边长自定
p.penup()
turtle.hideturtle()
p.hideturtle()
turtle.done()
方法二:#使用函数
import turtle
n = int(input("请输入多边形的边数:"))
def draw_polygon_rotation(n, side_length):
"""使用角度旋转法绘制正n边形"""
angle = 360 / n
for _ in range(n):
turtle.forward(side_length)
turtle.right(angle)
# 设置绘图环境
turtle.speed(3)
turtle.penup()
turtle.goto(0, 0) # 移动到起点
turtle.pendown()
# 绘制正n边形,边长为80
draw_polygon_rotation(n, 80)
turtle.done()

2.使用变量保存多边形的边数和边长,绘制一个多边形,且这个多边形以(0,0)为中心,画笔颜色为。
import turtle
import math
n = int(input("请输入多边形的边数:"))
side_length = eval(input("请输入边长:"))
p = turtle.Pen()
#turtle.setup(800,600)
#turtle.bgcolor("red")
turtle.color("white")
p.color("yellow")
p.pencolor("blue")
p.penup()
p.goto(0,0)
p.setheading(90)
for i in range(n):
#注意三角函数只接受弧度作为参数
p.forward((side_length/2)*math.tan((math.pi-2*math.pi/n)/2))
#以多边形的外接圆为视角,多边形的边长为弦,求弦心距
#p.forward((side_length/2)/math.tan(math.pi/n)) #这个方法简单点
p.right(90)
p.forward(side_length/2)
p.pendown()
p.right(360/n)
p.forward(side_length)
p.penup()
p.goto(0,0)
p.setheading(90)
p.right((i+1)*360/n)
p.penup()
turtle.showturtle()
p.showturtle()
turtle.done()