私はキャンバス経由で線で接続したいと思っているたくさんのHTML要素を持っています。ここで私が達成しようとしているもののモックアップだ:現在2点間の中間点を探す
、私はテキストのない、ラインを持っています。私は各行の中間にテキストを配置したいが、対角線であるので、どのように行うのか分からない。
現在のコード:
// 'connectors' is an array of points corresponding to
// the middle of each big blue buttons' x-value
ctx.clearRect(0,0,canvas.width,canvas.height);
for(var i=0;i<connectors.length;i++){
var wpoint = connectors[i];
var pos1 = {w: wpoint, h: 0};
var pos2 = {w: canvas.width/2, h: canvas.height};
ctx.beginPath();
ctx.moveTo(pos1.w,pos1.h);
ctx.lineTo(pos2.w,pos2.h);
ctx.stroke();
// Write Text Halfway
ctx.fillStyle = "blue";
ctx.font = "bold 16px Arial";
ctx.fillText("2702", 100, canvas.height/2);
// No idea what to put as the x value here
}
これを達成するための最良の方法は何ですか?潜在的に線の半分を描き、テキストを書いて、残りの線を描くのですか?
EDIT:おそらく、より良いタイトル/質問は次のようになります。HTMLキャンバス内の任意の2つのポイントの中間点を見つけるにはどうすればよいですか?そこにテキストを描きたい。
行がテキストではない、すべてではないでしょう傾斜しているので、ただ不思議を斜め線の真ん中が最も狭い線の真ん中と異なる高さになるので、同じレベルで表示されます –
@ johnny5良い点 - 私はそう思います正確な 'x値 'を見つけ、' y値'をキャンバスの高さの半分にプロットすることです。 – Jascination
それは、線を描き、同じy軸上の各点を見つけて、そのような部分を消去し、その上にテキストを描画する方が簡単かもしれません。 –