python中多边形绘制的亚像素精度?
我有一些科学数据,这些数据对于准确绘制非常重要。它是以多个侧面共享多边形(voronoi分区输出)的形式出现的,这些多边形高度密集,通常小于画布上的单个像素。但是,我希望像素的值能够可靠地报告位于其中的多边形的综合亮度:因此,例如,如果一个像素一半被亮度为1.0的多边形覆盖,另一半被亮度为0.0的另一个多边形覆盖,那么该像素应该正好为0.5 我是用Python来做这件事的,所以理想情况下,我可以使用一些非常精确的绘图库。Matplotlib有一个令人讨厌的错误,该错误会导致绘制的多边形略小于其实际范围[0],从而导致每个多边形的边界周围出现背景色线,即使多边形平铺平面时,其间没有间隙python中多边形绘制的亚像素精度?,python,2d,antialiasing,Python,2d,Antialiasing,我有一些科学数据,这些数据对于准确绘制非常重要。它是以多个侧面共享多边形(voronoi分区输出)的形式出现的,这些多边形高度密集,通常小于画布上的单个像素。但是,我希望像素的值能够可靠地报告位于其中的多边形的综合亮度:因此,例如,如果一个像素一半被亮度为1.0的多边形覆盖,另一半被亮度为0.0的另一个多边形覆盖,那么该像素应该正好为0.5 我是用Python来做这件事的,所以理想情况下,我可以使用一些非常精确的绘图库。Matplotlib有一个令人讨厌的错误,该错误会导致绘制的多边形略小于其实
[0]这确实可以通过优秀的库实现,该库专门用于高精度、高性能渲染。只需使用
pip安装pycairo
安装
尝试下面的简短示例。请注意亚像素渲染如何使蓝色和红色在某些像素位置混合为紫色
import cairo
WIDTH, HEIGHT = 32, 32
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, WIDTH, HEIGHT)
ctx = cairo.Context(surface)
# draw blue triangle
ctx.move_to(10, 10)
ctx.line_to(20.5, 10)
ctx.line_to(20.5, 20)
ctx.close_path()
ctx.set_source_rgb(0.5, 0.0, 0.0)
ctx.fill()
# draw blue triangle
ctx.move_to(10, 15)
ctx.line_to(20.5, 15)
ctx.line_to(20.5, 25)
ctx.close_path()
ctx.set_source_rgb(0.0, 0.0, 0.5)
ctx.fill()
surface.write_to_png("example.png")
…欢迎来到stackoverflow.:-)很好的第一个问题,如果我可以这么说的话。