圆形在 Arcade python 库中显示为三角形
Circle appears as a Triangle in Arcade python library
我一直在尝试使用拱廊 python 库绘制一个简单的 圆 ,但我只能看到一个完美定位的 三角形 代替。
这是我使用的示例代码:
import arcade
# Set constants for the screen size
SCREEN_WIDTH = 400
SCREEN_HEIGHT = 400
SCREEN_TITLE = "Happy Face Example"
# Open the window. Set the window title and dimensions
arcade.open_window(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)
# Set the background color
arcade.set_background_color(arcade.color.WHITE)
arcade.start_render()
# Draw the face
x = SCREEN_WIDTH // 2
y = SCREEN_HEIGHT // 2
radius = 100
arcade.draw_circle_filled(x, y, radius, arcade.color.YELLOW)
arcade.finish_render()
# Keep the window open until the user hits the 'close' button
arcade.run()
Screenshot of the problem
在网上搜索了几个小时的解决方案后,我在另一台PC上试了一下,我得到了一个正确的圆圈!!
我的机器规格:
i) AMD 锐龙 5 2500U,Vega 8 显卡
ii) 8 GB 内存
iii) OS: Ubuntu 21.10
iv) Python 版本:3.10
它运行的机器也运行 Ubuntu 21.10,带有 AMD CPU + GTX 1060 6 GB 视频卡并安装了 Python 3.10。
可能是什么问题?
这是因为圆实际上被呈现为多边形。球体的质量取决于该多边形的顶点数。
根据docs,可以设置这个是num_segments
参数:
num_segments (int) – Number of triangle segments that make up this circle. Higher is better quality, but slower render time. The default value of -1 means arcade will try to calculate a reasonable amount of segments based on the size of the circle.
但是,在某些版本的库和某些硬件上,默认计算会出错,因此您必须手动设置。
所以,你的代码应该是这样的:
arcade.draw_circle_filled(x, y, radius, arcade.color.YELLOW, 0, 100)
但是,由于您很可能希望分辨率取决于球体的大小,因此我建议您使用以下公式:
arcade.draw_circle_filled(x, y, radius, arcade.color.YELLOW, 0, int(2.0 * math.pi * radius / 3.0))
我一直在尝试使用拱廊 python 库绘制一个简单的 圆 ,但我只能看到一个完美定位的 三角形 代替。
这是我使用的示例代码:
import arcade
# Set constants for the screen size
SCREEN_WIDTH = 400
SCREEN_HEIGHT = 400
SCREEN_TITLE = "Happy Face Example"
# Open the window. Set the window title and dimensions
arcade.open_window(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)
# Set the background color
arcade.set_background_color(arcade.color.WHITE)
arcade.start_render()
# Draw the face
x = SCREEN_WIDTH // 2
y = SCREEN_HEIGHT // 2
radius = 100
arcade.draw_circle_filled(x, y, radius, arcade.color.YELLOW)
arcade.finish_render()
# Keep the window open until the user hits the 'close' button
arcade.run()
Screenshot of the problem
在网上搜索了几个小时的解决方案后,我在另一台PC上试了一下,我得到了一个正确的圆圈!!
我的机器规格:
i) AMD 锐龙 5 2500U,Vega 8 显卡
ii) 8 GB 内存
iii) OS: Ubuntu 21.10
iv) Python 版本:3.10
它运行的机器也运行 Ubuntu 21.10,带有 AMD CPU + GTX 1060 6 GB 视频卡并安装了 Python 3.10。
可能是什么问题?
这是因为圆实际上被呈现为多边形。球体的质量取决于该多边形的顶点数。
根据docs,可以设置这个是num_segments
参数:
num_segments (int) – Number of triangle segments that make up this circle. Higher is better quality, but slower render time. The default value of -1 means arcade will try to calculate a reasonable amount of segments based on the size of the circle.
但是,在某些版本的库和某些硬件上,默认计算会出错,因此您必须手动设置。
所以,你的代码应该是这样的:
arcade.draw_circle_filled(x, y, radius, arcade.color.YELLOW, 0, 100)
但是,由于您很可能希望分辨率取决于球体的大小,因此我建议您使用以下公式:
arcade.draw_circle_filled(x, y, radius, arcade.color.YELLOW, 0, int(2.0 * math.pi * radius / 3.0))