问题描述
我有由在某些空间点处相交的各种曲线组成的图形。
这些曲线具有关联的“强度”,由其透明度表示,该透明度由曲线的Alpha通道控制。
对于我的应用程序,当其中两条曲线在空间中相交时,它们的强度在该特定位置相加。我希望交集的alpha通道表示相同的行为。或更笼统地说,要为Alpha通道预定义一个求和规则(例如,将超出该范围的任何内容裁剪为1);这与Matplotlib中实现的用于混合Alpha通道的标准“ a + b-ab”规则相反。
- 这里有一个类似的问题Is it possible to do additive blending with matplotlib? 但是我也在寻找一种输出矢量化图形的解决方案。
- 我知道可以使用 LineCollections ,然后通过蛮力找到任何线段的交集,并根据任何预定义的规则手动设置Alpha颜色,但这并不是真正的像素和像素。仔细检查后,由于使用了矢量化图形,因此看起来很奇怪;线段没有完全相交,然后可以选择哪个线段来提供加和强度/透明度值,从而导致奇怪的结果。我也相信应该有一个更优雅的解决方案。
示例代码以测试alpha混合:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,1,5)
y1 = np.linspace(0,5)
y2 = 1-np.linspace(0,5)
y3 = np.ones(5)/2
plt.plot(x,y1,color='k',alpha=1/3,linewidth=4)
plt.plot(x,y2,y3,linewidth=4)
plt.show()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)