制作一个矩形,知道边的两条垂直线(路径元素)的位置
Make a rectangle knowing the position of the two vertical lines of the sides (path elements)
我想做一个矩形,知道边的两条垂直线的位置。这些行的实现方式如下:
<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" />
但是我可以使用两条线的坐标来使用它们来为我的矩形提供位置吗?
谢谢!
你可以
用 SVG 的原生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/
相关文章:
- 带有超级下拉菜单的两条水平线
- 为什么我的画布上只显示两条线
- 如何:´postMessage´它能发送两条信息吗
- 使用 D3 的两条线之间的阴影区域
- Socket.io 无法连续发送两条消息
- JavaScript - 我想将两条信息分配给一个数组 - 我是否使用多维数组
- 在 javascript 中,对象值中的两条垂直线是什么意思?
- 在画布上移动两条以上的箭头线
- 如何使用整数值(不是向量)计算两条线之间的度数
- 试图通过两条线获得自定义和无限的猫头鹰轮播
- 如何在javascript中找到两条切线的交点
- 使用“开放层”自动绘制路径的第一条垂直线
- 使用d3来遮挡两条线之间的区域
- 制作'链接到'活跃在两条路线上,而不是一条
- 在SVG路径上生成内阴影效果元素/三角形的两条边
- 如何显示中间有延迟的两条消息
- 两条Bézier曲线(或两条曲线和一条直线)的交点:代码
- 我怎么知道两条线是否重叠?
- 求两条线段是否相交
- 制作一个矩形,知道边的两条垂直线(路径元素)的位置