【发布时间】:2023-03-08 04:02:01
【问题描述】:
正如问题所说,我如何创建一个三角形的图像文件,其中输入了边和角度。
我目前使用的解决方案是使用海龟库
forward(s1)
left(180-c)
forward(s2)
left(180-a)
forward(s3)
ts = turtle.getcanvas()
ts.postscript(file="file.ps")
现在这可以工作了,但它会在 ps 文件中输出图像。由于我希望它以图像形式(如 png/jpg/pil 图像),我需要将其转换为它。所以我发现这样做你可以使用
img = Image.open("file.ps")
img.save("file.png")
但这表示它“无法在路径上找到 Ghostscript” 但由于我无法在我的设备上安装 ghostscript(由于原因),我无法将其转换为图像格式。 所以我的问题是,是否有任何库或任何方法可以仅使用边和角度来创建三角形的图像文件。 不知道如何在 PIL 中做到这一点,因为我需要顶点的坐标,而且我不知道如何获取顶点的坐标。 Turtle 的另一个问题是它创建了一个新窗口来制作图像。所以最好是,我希望图像创建在后台发生。有什么办法吗?
编辑:我目前用来制作文件的代码:
def trianglesss(s1,s2,s3):
a = s1
b = s2
c = s3
a1 = round(math.degrees(math.acos(((b**2)+(c**2)-(a**2))/(2*b*c))))
b1 = round(math.degrees(math.acos(((c**2)+(a**2)-(b**2))/(2*a*c))))
c1 = round(math.degrees(math.acos(((b**2)+(a**2)-(c**2))/(2*a*b))))
turtle.tracer(0,0)
turtle.pendown()
turtle.speed('fastest')
hideturtle()
forward(s1)
left(180-c1)
forward(s2)
left(180-a1)
forward(s3)
turtle.update()
ts = turtle.getcanvas()
ts.postscript(file="file.eps")
bye()
trisssimg = Image.open("file.eps")
trisssimg.save("Trisss.jpg")
trianglesss(20,20,20)
#Calculating angles using the formula from:
#https://www.mathsisfun.com/algebra/trig-solving-sss-triangles.html
【问题讨论】:
-
请提供更完整的海龟图形绘制代码。
-
好的,差不多了。
标签: python image python-imaging-library