gpt4 book ai didi

python - python中多边形绘图的亚像素精度?

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:35 25 4
gpt4 key购买 nike

我有一些科学数据非常重要,要准确画出来。它以许多边共享多边形(来自 voronoi 分区的输出)的形式出现,这些多边形高度密集,并且通常小于 Canvas 上的单个像素。但是,我希望像素的值能够可靠地报告位于其中的多边形的综合亮度:因此,例如,如果一个像素一半被亮度为 1.0 的多边形覆盖,另一半被另一个具有亮度的多边形覆盖0.0,像素应该正好是 0.5。

我在 Python 中执行此操作,因此理想情况下,我可以使用一些用于高度精确绘图的不错的库。 Matplotlib 有一个严重的错误,它会导致绘制的多边形略小于其实际范围[0],导致每个多边形的边界周围出现背景色线条,即使多边形平铺平面且中间没有间隙也是如此。

[0] https://github.com/matplotlib/matplotlib/issues/2823

最佳答案

这对于优秀的 Cairo 确实是可能的库,专为高精度、高性能渲染而制作。只需安装 python binding使用 pip install 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")

enter image description here

关于python - python中多边形绘图的亚像素精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50322593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com