Ich benutze Javascript und eine Leinwand, um eine mathematisch entworfene Skala zu zeichnen (um Drehmoment zu messen, enthält es Newton-Meter und Fuß-Pfund). Ich hatte meine Ticks mit Trigonometrie positioniert und zeichnete Lichtbogenlinien mit arc
natürlich. Das Problem kam, als sie sich anstellen mussten, aber es gab eine seltsame Verzerrung. Ich zeichnete dann einen sehr großen Kreis und verglich ihn mit einer kreisförmigen Auswahl in GIMP und es gab eine Verzerrung. Die Kreise sind alle 45 Grad um die Kreise einheitlich, aber zwischen diesen Knoten weicht der gezeichnete Kreis nach außen ab, ähnlich wie ein Achteck, das zu weit nach außen gerundet werden kann, um einen Kreis zu bilden.Wie kann ich einen Kreis auf einer Leinwand zeichnen?
Warum treten diese Verzerrungen auf? Wie kann ich einen wirklich kreisförmigen Kreis auf einer Leinwand zeichnen?
Dies ist der Code, den ich verwendet habe, um meinen verzerrten Kreis zu erzeugen.
<!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>
Diese nicht minimal sein kann, weiß ich nicht die Relevanz der context.lineCap
, aber es ist ein Überbleibsel des Codes dies auf basiert. Der folgende Screenshot zeigt die Differenz zwischen dem von GIMP gezeichneten Kreis und dem Kreis von Chrome gezeichnet
Haben Sie einen Beispielcode? –
@ JonSaw Sicher. Ich füge den Code hinzu, mit dem ich meinen Kreis generiert habe. –
Lief den Code auf Safari (8.0.6), Chrome (43.0.2357.132) und Firefox (36.0.4) - es sah gut aus auf meiner. JS Bin [hier] (https://jsbin.com/pohehixibu/edit?html,output). Nur aus Neugier, welchen Browser benutzen Sie? –