是否可以将红色圆圈仅显示在多边形内。对于矩形,您可以确定高度和宽度。
我打算像病毒模拟器一样制作,并且有红色圆圈只出现在国家内部。但这些国家不是矩形,而是多边形/图像。
我想知道是否有可能只有圆形在多边形或图像中是blit。 感谢
答案 0 :(得分:2)
假设你有一张地图作为图像,你想确定一个随机点是否在陆地上。你需要的是重新绘制的图像只有黑白像素。然后,您可以使用Pygame的Surface.get_at()命令查看像素的颜色,并根据该颜色做出决定。
或者,假设你有一个地图作为一堆多边形,你想确定一个随机点是否在陆地上。这里的逻辑称为光线跟踪,在此更好地解释:How can I determine whether a 2D Point is within a Polygon?
答案 1 :(得分:0)
为此使用matplotlib。一个非常简单的示例(将值赋予正方形的顶点):
from matplotlib.path import Path
verts = [
left_bottom,
left_top,
right_top,
right_bottom,
(0, 0),
]
codes = [
Path.MOVETO,
Path.LINETO,
Path.LINETO,
Path.LINETO,
Path.CLOSEPOLY,
]
path = Path(verts, codes)
if path.contains_point((x, y)):
print("True")