Ich versuche, zwei Formen auf einer Leinwand zu zeichnen. Der erste ist ein Halbkreis. die zweite ist eine Linie.Warum löscht sich meine Lichtbogenlinienbreite nicht?
Halbkreis:
this.ctx.beginPath();
this.ctx.arc(cs, cs, radius, angle, angle+Math.PI, true);
this.ctx.fillStyle = '#FC4F54';
this.ctx.fill();
this.ctx.stroke();
this.ctx.closePath();
Line:
var x = (Math.cos(angle + Math.PI/2) * this.canvasSize) + cs;
var y = (Math.sin(angle + Math.PI/2) * this.canvasSize) + cs;
this.ctx.beginPath();
this.ctx.moveTo(cs,cs);
this.ctx.lineTo(x,y);
this.ctx.lineWidth = 2 * radius;
this.ctx.strokeStyle = "#ffffff[![enter image description here][1]][1]";
this.ctx.stroke();
this.ctx.closePath();
Als ich sie in der Reihenfolge ausgeführt oben ich dieses Ergebnis zu erhalten gezeigt:
Aber wenn ich ändern Um die Reihenfolge der beiden herum ist also die Linie zuerst, das ist das Ergebnis:
Wenn ich erhöhe den Radius des Bogens, zum zweiten, beginne ich die rote Farbe in der Mitte zu sehen. Was mich denken lässt, dass irgendwie die Linienbreite von der Linie in den Bogenstil übergeht. Wenn ich jedoch versuche, die lineWidth für den Kreis explizit auf Null festzulegen, hat es keine Auswirkung.
Was habe ich verpasst?
In meinem Fall möchte ich nicht die Linie so erscheinen Ich setze es auf 0.1. Danke für Ihre Hilfe. – APalmer
@Corndog, wenn Sie die Linie nicht wollen, rufen Sie nicht stroke(). – Kaiido