如何知道SVG路径的绝对位置
How to know absolute position of a SVG PATH?
我有一个用InkScape生成的SVG,所有路径都移动到相对位置(m):
<path xmlns="http://www.w3.org/2000/svg"
style="fill: #07fe01;
fill-opacity: 1;
display: inline;
stroke-width: 4px;
cursor: auto;
stroke: none;
opacity: 0.4;
filter: none; "
d="m 431.36764,202.65372 -20.46139,7.94003 -2.875,8.84375 -3.0625,13.21875 8.8125,0.96875 13.34375,6.84375 9.94451,-6.04527 11.96344,-1.95225 -2.3183,-6.56201 0.1291,-10.53422 z"
id="Rossello"
inkscape:connector-curvature="0" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:nodetypes="ccccccccccc" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
transform="translate(-0.03124997,-689.42566)"
onclick="mapmed.click(this)"
onmouseover="mapmed.over(this)"
onmouseout="mapmed.out(this)">
<title id="title3042">Rosselló</title>
</path>
我需要从javascript中知道每个路径的绝对位置,但我做不到。
在我看来,normalizedPathSegList就是您想要的。
试试这样的东西:
ele=$('#Rosello')[0]
var bbox = ele.getBBox()
var top = bbox.y + bbox.y2
在x方向上也是如此。
我不确定,但我观察到getBBox相当慢。所以要小心。
我找到了一种知道绝对位置的方法。错误是试图在没有应用底层的情况下找到绝对坐标,像InkScape中那样从下到上平移和计数像素,而不是像SVG中那样从上到下。
按照这个陡度可以知道PATH的第一个节点的绝对位置(以像素为单位):
首先获取svg对象的宽度和高度。svgWidth,svgHeight。
第二,对基础布局进行变换平移。baseTransX,baseTransY。
第三个获取路径的第一个节点。路径X、路径Y。
第四,如果存在,如果不是0,则获取路径的变换平移。pathTransX、pathTransY。
有了这些值,我们可以找到InkScape:中第一个节点的绝对X和Y
X=baseTransX+pathTransX+pathX
Y=svgHeight-(baseTransY+pathTransY+pathY)
相关文章:
- 创建从一个位置到另一个位置的路径动画
- 更改文件字段内显示的路径的位置
- 在 SVG 动画中围绕舞台原点以外的其他位置旋转路径
- 在 AngularJS 中按路径位置获取控制器
- 将路径添加到当前 URL 位置
- 如何在 Ext JS 网格列中打开共享路径文件位置
- 从 GPS 捕捉到道路的 GEO 位置绘制路径
- 设置d3中多边形和路径的位置
- 如何在D3.js中添加到地理位置的链接(创建为json路径)
- 为什么我的路径位置在paper.js中没有定义
- 确定拉斐尔路径上一个点的位置
- Raphael JS:IE中缩放路径后的错误位置
- 将粘贴文件从共享路径复制到桌面.并从粘贴的位置打开相同的
- 量角器检查位置路径
- Snap.svg沿着一条路径拖动一个组并保存位置
- 重新定义window.console函数时,请保留原始路径位置
- 美元的位置.路径相同的url不起作用
- 指定的位置.路径在angularjs中
- 不能在angular JS中更改位置路径
- AngularJS美元的位置.路径循环回到根