在pygame中绘制渐变透明多边形
我有一个场景,现在我想在这个场景上叠加一些半透明的多边形。这个可以通过使用 pygame.gfxdraw.filled_polygon
来实现,因为它支持带透明度的绘制。不过,有个问题就是这些多边形的透明度需要随着距离变化而渐变。举个例子,如果多边形的一端透明度是255(完全不透明),而另一端是0(完全透明),那么在多边形内部透明度就要从255渐变到0。我之前已经实现过通过绘制渐变和在上面加一个遮罩来画出渐变形状,但我从来没有遇到过这种情况,所以我不知道该怎么做。我需要一个可以实时运行的解决方案。有没有人有什么想法?
1 个回答
0
你可能已经想过这个问题,并且决定不这样做,但如果把多边形提前画好,运行起来会更流畅。假设你需要的多边形种类不多,你甚至可以根据需要调整它们的大小,这样可以节省处理器的资源。
另外,如果所有的多边形都是规则的,你可以准备几种不同的等边三角形,并在上面加上不同方向的渐变,这样就能形成你需要的形状。
还有一种方法是先定义你要画的多边形,然后在这个形状里放一张你电脑里保存的渐变图片。
最后,你可以考虑用C或C++来编写你的程序(或者程序中某些占用CPU资源较多的部分)。这两种语言在编译时会自动优化,所以运行速度比Python快得多,更适合你想要实现的功能。