我想有360个PNG位图,每个位图都是一个弧形,并表示进度中的步骤。在步骤60(距顶部60度)和步骤120中存在以下位图。
如何在代码中绘制这些位图?
编辑:我现在可以绘制它,但不知道如何将起点设置在顶部而不是底部
import turtle
wn = turtle.Screen
turtle.hideturtle()
turtle.hideturtle()
turtle.ht()
turtle.speed(0)
turtle.pensize(11)
turtle.color("grey")
turtle.circle(200)
turtle.color("red")
turtle.circle(200, 60, 3600)
cv = turtle.getcanvas()
cv.postscript(file="circle.ps", colormode='color')
turtle.done()
答案 0 :(得分:2)
以this answer为指导,首先我们需要一个程序来绘制和转储图像:
from turtle import Screen, Turtle
def save(counter=[1]): # dangerous default value
screen.getcanvas().postscript(file="arc{0:03d}.eps".format(counter[0]))
counter[0] += 1
screen = Screen()
screen.setup(330, 330)
screen.colormode(255)
turtle = Turtle(visible=False)
turtle.speed('fastest')
turtle.penup()
turtle.goto(-150, -150)
turtle.begin_fill()
for _ in range(4):
turtle.forward(300)
turtle.left(90)
turtle.end_fill()
turtle.home()
turtle.width(10)
turtle.color(183, 0, 2)
turtle.sety(140)
turtle.pendown()
save()
for _ in range(360):
turtle.circle(-140, 1)
save()
我在第6步放弃了引用的答案,然后切换到ezgif.com制作了这个动画PNG:
答案 1 :(得分:1)
一些绘制弧形的简单代码:
import matplotlib.pyplot as plt
from matplotlib.patches import Arc
plt.figure(figsize=(6, 6)) # set image size
plt.subplots_adjust(0, 0, 1, 1) # set white border size
ax = plt.subplot()
for i in range(1, 361):
plt.cla() # clear what's drawn last time
ax.invert_xaxis() # invert direction of x-axis since arc can only be drawn anti-clockwise
ax.add_patch(Arc((.5, .5), .5, .5, -270, theta2=i, linewidth=5, color='red')) # draw arc
plt.axis('off') # hide number axis
plt.savefig(str(i)+'.png', facecolor='black') # save what's currently drawn
您可能需要添加更多代码才能获得图片效果。附加结果如下: