行星,月亮和画布中的剪切弧 - 粗糙的边缘
Planet, Moon and a Clipping Arc in Canvas - Rough Edges
所以我有一个旋转的canvas
元素,里面画了一个弧线(较小的行星):http://jsfiddle.net/neuroflux/9L689/4/(更新)
但我似乎无法让较小星球边缘的抗锯齿更平滑 - 有什么想法吗?
干杯!
编辑:有没有办法增加arc
中使用的迭代次数?
您的问题不在于弧线没有足够的点,而是在 Chrome 中,.clip()
操作不使用抗锯齿来生成剪切路径。
请参阅 铬问题 7508 和 132442
要查看此操作的实际效果,请查看 Chrome 中的 http://jsfiddle.net/alnitak/YMtdZ/。
标记:
<canvas id="c" width="600" height="300" />
法典:
var canvas = document.getElementById('c');
var ctx = canvas.getContext('2d');
ctx.fillStyle = 'black';
ctx.save();
ctx.beginPath();
ctx.arc(150, 150, 140, 0, 2 * Math.PI);
ctx.clip();
ctx.fillRect(0, 0, 600, 300);
ctx.restore();
ctx.beginPath();
ctx.arc(450, 150, 140, 0, 2 * Math.PI);
ctx.closePath();
ctx.fill();
左侧圆圈使用剪裁绘制,并带有锯齿。 右侧圆圈是"正常"绘制的,并且具有抗锯齿功能。
FWIW,在Firefox和Safari中,两个图像看起来是一样的。 我无法在IE上测试它。
我能想象到的唯一解决方法(直到 Chrome 修复)是将屏幕外的图像渲染成 3 或 4 倍大的画布,然后通过下采样将其复制到显示的画布中。
相关文章:
- 下拉菜单在菜单按钮的边缘闪闪发光
- 如何在图片和边缘之间居中设置标签
- 如何使线条的边缘像素保持半透明
- Cytoscape中反映重量的边缘
- D3.js剪辑路径截断了我的图的边缘
- 微软边缘浏览器缓存中的RESTful Angular应用程序
- 即使光标位于屏幕边缘,也可以跟踪鼠标速度
- 如何使对象从画布边缘反弹
- 用于添加边缘的gremlin服务器查询
- 库存图表-添加偏移以避免在边缘绘制点
- 谷歌地图API-点击事件仅在边缘点击时触发
- 通过node.js将Visual Studio调试器附加到电子边缘应用程序
- 安卓计算器:屏幕更高,边缘更边缘
- 三.js:如何将边缘助手与网格匹配
- 如何在 CSS 动画遇到屏幕边缘时停止它
- 从边缘.js与 C# 主机通信
- 如何相对于父边框的外边缘定位元素
- 如何在边缘脚本完成后将用户定向到新页面
- 在边缘贴上带有细胞.js的标签
- 行星,月亮和画布中的剪切弧 - 粗糙的边缘