1

我在使用 HTML Canvas“手工制作”的简单圆环图上有一个奇怪的渲染问题。它从 iOS14 开始,我可以在我的 iPhone 8 上看到它。

我不知道其他设备是否有这个问题,从 chrome 开发工具和 iPhone 11 Pro 模拟器我没有。

https://codepen.io/emish89/pen/bGemWKN

const value = 50;
const circle = document.getElementById("victories-canvas"),
  context = circle.getContext("2d"),
  positionX = circle.width / 2,
  positionY = circle.height / 2,
  degrees = value * 3.6,
  circleRadius = 80,
  innerCircleRadius = 65,
  startAngle = (Math.PI / 180) * 270,
  endAngle = (Math.PI / 180) * (270 + degrees);

context.lineCap = "butt";
context.beginPath();
context.strokeStyle = "#000";
context.lineWidth = "15";
context.arc(positionX, positionY, circleRadius, startAngle, endAngle);
context.stroke();

context.beginPath();
context.arc(positionX, positionY, innerCircleRadius, 0, 2 * Math.PI);
context.fillStyle = "#D8FF53";
context.fill();
<canvas id='victories-canvas' width='175' height='175' />

我附上了一支笔,我在其中创建了问题的情况。如果(JS 中的第一行)高于75,您将开始看到奇怪的故障。(下图)

我对其进行了测试,似乎与circleRadius属性有关,在 78 岁以下,在我的特定情况下你没有问题。

我不知道我的代码中是否有我不理解的问题(但多年来一直运行良好)或其他问题。

非常感谢所有的贡献。

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

4

1 回答 1

0

同样的问题。ctx.arc可能会出现此错误。

此处演示: https ://codepen.io/acery/pen/XWjdmbv

于 2020-12-05T06:59:56.880 回答