为什么画一个 PyGame 边框很粗的矩形却画了一个加号?

Why did drawing a PyGame rectangle with very thick borders draw a plus shape instead?

所以我今天画了一个矩形:

my_rectangle = pygame.Rect(100, 100, 5, 5)
pygame.draw.rect(display, colour["black"], my_rectangle, 100)

它画了一个非常大的 cross/plus 符号,而不是画一个细边框矩形。

发生这种情况是因为我在将矩形绘制到屏幕上时键入了“100”而不是“1”作为边框粗细。
但这背后的逻辑是什么?
边框厚度变得如此之大以至于....?
有人想解释一下您的想法或知道发生了什么吗?

pygame.draw.rect():

rect(surface, color, rect, width=0) -> Rect

width (int) -- (optional) used for line thickness or to indicate that the rectangle is to be filled (not to be confused with the width value of the rect parameter)

  • if width > 0, used for line thickness

Note When using width values > 1, the edge lines will grow outside the original boundary of the rect.

因此,您实际上是沿着矩形的边缘绘制了 4 条线,长度为 5,厚度为 100。由于线条呈正方形排列,粗比长,所以最终的形状看起来是十字形。