2016-11-14 7 views
0

キャンバスに2つの図形を描こうとしています。最初は、半円です。 2番目の行は1行です。円弧線の幅がクリアされないのはなぜですか?

ハーフサークル:

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(); 

ライン:

enter image description here

しかし、私は変更:

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(); 

私は私の上に示した順序でそれらを実行し、この結果を得ます2つの周りの順序は、ラインが最初であるので、これは結果です:

enter image description here

Iは円弧の半径を大きくした場合、第二のために、私は中心に赤い色を見始めます。私は、線からの線幅が何とか円弧様式に交差していると思います。ただし、円の線幅を明示的にゼロに設定しようとすると、効果はありません。

私は何が欠けていますか?

答えて

2

アークの外観は、疑わしいようにlineWidthが変更されたために発生します。

lineWidthを0に設定しようとすると、in this documentationのようにゼロの値が無視されるため、これは無効です。

あなたが弧を描く前に、1の線幅を設定した場合、あなたは私の特定のケースでは。

+0

を使用すると、アークとで線を引く方のために、同じ結果を得るでしょう、私はラインがそう見えるしたくありません私は0.1に設定しました。ご協力いただきありがとうございます。 – APalmer

+1

@Corndog、行を必要としない場合は、stroke()を呼び出さないでください。 – Kaiido

関連する問題