【问题标题】:How to draw arc (part of circle) in python如何在python中绘制弧(圆的一部分)
【发布时间】:2018-10-24 04:27:47
【问题描述】:

我想要 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()

【问题讨论】:

  • 抱歉,这不是 SO 的工作方式。
  • 由于您的问题是标注器pythonmatplotlib 经常在python 中用于绘图。也许你想在谷歌上搜索一下

标签: python turtle-graphics


【解决方案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

您可能需要添加更多代码才能获得图片的效果。附上结果的样子:

【讨论】:

    【解决方案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:

    【讨论】:

    • 非常感谢。我可以通过 ImageMagick 工具将“eps”文件转换为 png:magick mogrify -format png -density 300 -colorspace sRGB -background transparent -units PixelsPerInch -resize 330x330 *.eps
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多