0

辺の2本の縦線の位置を知っている長方形を作りたいです。行は次のように実装されます。

<path fill="#000000" id="Measure1" d="M159.688,119.75L159.688,88.75L160.28799999999998,88.75L160.28799999999998,119.75ZM162.688,119.75L162.688,88.75L163.28799999999998,88.75L163.28799999999998,119.75Z"/>

<path fill="#000000" id="Measure2" d="M260.168,119.75L260.168,88.75L260.76800000000003,88.75L260.76800000000003,119.75Z"/>

このコードでは、長方形があります。

<path d="M10 80 H 110 V 130 H   10 V  80 Z" fill="red" />

しかし、2 つの線の座標を使用して、それらを使用して四角形に位置を与えることはできますか?

ありがとうございました!

4

1 に答える 1

2

SVG の native を使用して線の境界ボックスを取得しgetBBox()、位置を計算できます。基本的な例を次に示します。

var path1 = document.getElementById("Measure1");
var path2 = document.getElementById("Measure2");
var xmlns = "http://www.w3.org/2000/svg";
var svg = document.querySelector("svg");

var bbox1 = path1.getBBox();
var bbox2 = path2.getBBox();

var x = bbox1.x + bbox1.width;
var y =  bbox1.y;
var width = bbox2.x - x;
var height =  bbox1.height;

var rect = document.createElementNS(xmlns, "rect");
rect.setAttribute("x", x);
rect.setAttribute("y", y);
rect.setAttribute("width", width);
rect.setAttribute("height", height);
rect.setAttribute("fill", "red");
svg.appendChild(rect);

ここで結果を見ることができます:

http://jsfiddle.net/3rSYV/

于 2013-02-02T15:42:52.623 に答える