在拉斐尔JS的两个百分点之间画一条线

Drawing a line between two percentage points in Raphael JS

本文关键字:百分点 两个 之间 一条 JS      更新时间:2023-09-26

我正在尝试在两个基于百分比定位的圆圈之间绘制一条路径。他们这样定位的原因是我缩放纸张并希望保持它们的位置。

这适用于圆圈,但是当我尝试绘制这样的路径时:

paper.path("M55% 70%L25% 20%")

我得到的只是:

Error: Problem parsing d="M,0,0"

我该怎么做呢?

另外,有没有办法在不手动计算的情况下获取元素的百分比位置?

谢谢!

更新:

最终解决了我的问题,但以一种非常手动、解决方法的方式:

var canvasX = $('#worldmap svg').width() / 100;
var canvasY = $('#worldmap svg').height() / 100;
mapCanvas.path("M" + Math.floor(parseFloat(from.attr("cx")) * canvasX) + " "
        + Math.floor(parseFloat(from.attr("cy")) * canvasY) + "L"
        + Math.floor(parseFloat(to.attr("cx")) * canvasX) + " "
        + Math.floor(parseFloat(to.attr("cy")) * canvasY));

不用说,这不是很好。

SVG PathData 规范中没有指示允许使用这种语法。实际上,我有点惊讶它允许像圆心这样的东西......但我想你是对的。
但是,如果您执行缩放,则位置将不会保持固定,如以下jsfiddle所示: http://jsfiddle.net/PUg8r/