for segment in self._segments:
if len(segment) > 2:
for i in xrange(self._LINE_WIDTH):
pygame.draw.aalines(self._display, self._LINE_COLOR, False
((x,y+i) for x,y in segment))
pygame.draw.aalines(self._display, self._LINE_COLOR, False,
((x,y-i) for x,y in segment))
pygame.draw.aalines(self._display, self._LINE_COLOR, False
((x+i,y) for x,y in segment))
pygame.draw.aalines(self._display, self._LINE_COLOR, False,
((x-i,y) for x,y in segment))
我建议使用填充矩形,如下所示:https://www.pygame.org/docs/ref/gfxdraw.html#pygame.gfxdraw.rectangle。在
你的代码看起来像:
然后记得填充表面。其思路如下:
^{pr2}$经过多次尝试和错误之后,最好的方法是:
1)首先,我们定义形状的中心,给定直线的X0{x,y}起点和X1{x,y}终点。在
2)然后求出直线的斜率(角度)。在
^{pr2}$3)使用“坡度”和“形状”参数,可以计算以下框端的坐标。在
4)使用计算的坐标,我们绘制一个反走样多边形(感谢@martineau),然后按照
gfxdraw
网站上的建议填充它。在您也可以使用pygame.draw.aalines通过在原始线条周围绘制线条+/-1-N像素的副本来实现功能(是的,这不是超高效的,但它在必要时工作)。例如,假设我们有一个要绘制的线段列表:
相关问题 更多 >
编程相关推荐