当我在 HTML5 Canvas 或 Quartz 或 GDI+ 等类似系统中填充相邻区域时,我在共享边缘上看到浅色接缝。这是一个例子,(下面的代码):
我想我明白发生了什么,但没有解决办法。每个边缘都针对白色进行了抗锯齿处理,因此不是橙色和蓝色的混合,而是橙色、蓝色和白色的混合。
基本上之前已经问过同样的问题,但讨论较少,也没有好的答案。
一些涉及在接缝处将第一个形状画得稍大一点或在接缝上画一条线的变通方法不能抵抗诸如透明度或奇数形状组合之类的变化。
关闭抗锯齿可以避免支持它的 API 的接缝,但是当然,所有的边缘都是锯齿状的。
有没有办法向渲染器提供有关预期邻接的提示?
<canvas id="myCanvas" width="300" height="150" /> <script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();
ctx.moveTo(100,0); ctx.lineTo(115,150); ctx.lineTo(300, 50);
ctx.closePath(); ctx.fillStyle="#885533"; ctx.fill();
ctx.beginPath();
ctx.moveTo(0,50); ctx.lineTo(100,0); ctx.lineTo(115,150);
ctx.closePath(); ctx.fillStyle="#335588"; ctx.fill();
</script> </body> </html>