2016-06-01 5 views
2

私は時間の間に幅を変える曲線/形状を描く必要があります。だから私は時間ごとに各ラインを描き、各チャンクの幅を変える必要があります。しかし、これを行うと、線の間に隙間ができます。ここ参加方法は?

単一にbeginPath /ストロークでexample(行は自動的に接合されている):

var canvas = document.getElementById('canvas'); 
var ctx = canvas.getContext('2d'); 
ctx.beginPath 
ctx.strokeStyle='#cc0000'; 
ctx.lineWidth=10; 
ctx.moveTo(10,10); 
ctx.lineTo(50,50); 
ctx.lineTo(100,60); 
ctx.stroke(); 

here代わりIがライン毎に幅を変えることができる形状の各部分(のためにbeginPath /脳卒中、 )私はこの問題を解決する一回:

var canvas = document.getElementById('canvas'); 
var ctx = canvas.getContext('2d'); 
ctx.beginPath; 
ctx.strokeStyle='#cc0000'; 
ctx.lineWidth=10; 
ctx.moveTo(10,10); 
ctx.lineTo(50,50); 
ctx.stroke(); 
ctx.beginPath; 
ctx.strokeStyle='#cc0000'; 
ctx.lineWidth=10; 
ctx.moveTo(50,50); 
ctx.lineTo(100,60); 
ctx.stroke(); 

あなたが最後の例で見ることができるように、2つのライン間のギャップがあります。 どうすれば修正できますか?

ctx.lineCap = "round"; 

これは、よりスムーズなオーバーラップを可能にし、「半分」円と線分を延長します:

+0

なぜ、このような他のポイントに移動することはできません:https://jsfiddle.net/w6nu0tgy/8/。それは一般的ではありませんが、それは仕事です。 –

+0

ctx.moveTo(48,49); 50,50の代わりに – MrPk

答えて

2

あなたはキャップのレンダリング方法を変更することができます。

Fiddle

+1

あなたは私の一日を作る!どうもありがとうございました! – markzzz

+0

@markzzzしかし、それは同じに見えません。 –

+1

私が必要としているものは(ただの線で結ばれています)完璧です;) – markzzz

関連する問題