google-chrome - 在 Safari for Ipad 的画布上渲染超过 256 个点的线条
问题描述
chrome 和 Safari for Ipad 中的画布似乎都存在错误。
如果我用 256 点渲染一条线,则该线按预期渲染。
如果我渲染一条超过 256 个点的线,则该线被分成两条或更多条单独的线。
下面的 JS fiddle 显示了两行,最上面一行有 256 个点,最下面一行有 257 个点。它们在其他方面是相同的。
底部的始终在 ipad 上呈现 3 个部分。我很想知道是什么原因造成的,以及有什么可能的解决方案
https://jsfiddle.net/g26t8adL/2/
(function() {
// prep canvas
let canvas = document.getElementById('c')
let ctx = canvas.getContext('2d')
canvas.width = 700
canvas.height = 300
// prep stroke
ctx.globalAlpha = 0.5
ctx.lineWidth = 30
ctx.lineJoin = ctx.lineCap = 'round'
// draw 256 point on canvas
ctx.beginPath()
for(let i=0; i< 256; i++){
ctx.lineTo((50+(i*2)), 100)
}
ctx.stroke()
// draw 257 point on canvas
ctx.beginPath()
for(let i=0; i< 257; i++){
ctx.lineTo((50+(i*2)), 200)
}
ctx.stroke()
})();
body{
background: #ccc;
}
canvas{
background: #fff;
}
<canvas id="c"></canvas>
解决方案
推荐阅读
- python-3.x - 即使在 python 中使用 .click()、implicitly_wait() 和 selenium webdriver 后也无法提取数据
- c - 带符号整数的位移位重置太多
- angular - 是否可以通过 HttpInterceptors 添加 'observe': 'response' httpOption?
- javascript - 刷新后反应数据表不重新填充
- flutter - 我的浮动操作按钮没有从一个屏幕更改到另一个屏幕
- graphql - 放大/反应 AppSync graphql 订阅 @auth 错误
- android - Koin DI 清除依赖
- r - R中我的班级名称中的大写字母问题
- python - 如何根据 Git 子模块的需要对父存储库进行版本控制?
- powershell - 在 Powershell 中识别外部和内部硬盘驱动器