Я использую javascript и холст, чтобы нарисовать математически разработанную шкалу (для измерения крутящего момента, он включает в себя новые метры и фунты). Естественно, я позиционировал свои тики, используя тригонометрию, и рисование линий дуги с использованием arc
. Проблема возникла, когда им нужно было выстраиваться в линию, но было странное искажение. Затем я рисовал очень большой круг и сравнивал его с круговым выбором в GIMP, и было искажение. Круги согласуются каждые 45 градусов вокруг кругов, но между этими узлами холст, нарисованный кругом, отклоняется наружу, подобно восьмиугольнику, который может быть закруглен слишком далеко, чтобы приблизить круг.Как рисовать круг на холсте?
Зачем возникают эти искажения? Как я могу нарисовать по кругу круг на холсте?
Это код, который я использовал для создания искаженного круга.
<!DOCTYPE html>
<html>
<body>
<canvas width=8000 height=8000 id='myCanvas'></canvas>
<script>
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.beginPath();
context.arc(4000, 4000, 3200, 0, Math.PI*2, false);
context.lineWidth = 1;
context.strokeStyle = '#ff0000';
context.lineCap = 'square';
context.stroke();
</script>
</body>
</html>
Это не может быть минимальным, я не знаю актуальности context.lineCap
, но это пережиток кода это на основании. Следующий скриншот показывает разницу между окружностью, проведенной с помощью GIMP и кругом нарисованного Chrome
у вас есть образец кода? –
@ JonSaw Конечно. Я добавлю код, который я использовал для создания своего круга. –
Отмените свой код на Safari (8.0.6), Chrome (43.0.2357.132) и Firefox (36.0.4) - он отлично смотрелся на моем. JS Bin [здесь] (https://jsbin.com/pogehixibu/edit?html,output). Из любопытства, какой браузер вы используете? –