我为OpenHeatMap开源项目维护并行Flash和
HTML5 / Canvas渲染器.我被填充多边形的渲染中的不一致所困扰,两个版本之间的分数坐标.如果渲染两个共享边的多边形,Canvas将沿着该边显示可见的连接,而Flash将两者无缝地融合在一起,如果它们是相同的颜色,则没有可见的差异.我在这里放了一个小页面来显示问题:
http://web.mailana.com/labs/stitchingbug/
[Gak,垃圾邮件预防阻止了这种形象,但请看这里的截图web.mailana.com/labs/stitchingbug.png]
源代码以及执行相同操作的Flash项目位于:
github.com/petewarden/stitchingbug
根本问题是如果你不能在没有接缝的情况下将多边形拼接在一起,就不可能进行任何复杂的多边形渲染.我不确切知道Flash的填充规则是什么,但它们产生了正确的结果,3D渲染器也是如此.有没有人有客户端修复来解决这个问题?它是跨浏览器,这使它看起来很刻意,因此任何对所用规则的引用也将受到赞赏.这是Canvas代码:
var ctx = canvas.getContext('2d'); ctx.fillStyle = 'rgb(0,0)'; ctx.beginPath() ctx.moveto(0,0); ctx.lineto(50.5,100); ctx.lineto(0,100); ctx.closePath(); ctx.fill(); ctx.beginPath() ctx.moveto(50.5,0); ctx.lineto(100,100); ctx.lineto(50.5,100); ctx.closePath(); ctx.fill();
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。