Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Raphael.js绘制“无限”线?_Javascript_Svg_Raphael - Fatal编程技术网

Javascript 如何使用Raphael.js绘制“无限”线?

Javascript 如何使用Raphael.js绘制“无限”线?,javascript,svg,raphael,Javascript,Svg,Raphael,我正在使用Raphael.js构建一个线图应用程序,需要绘制一条穿过两点并到达视口的线 我上传了一个模型,展示了我需要实现的目标: 感谢您的帮助 谢谢SVG,拉斐尔不能做无限的线条,但这并不意味着你不能伪造它 你需要学点数学 首先,从两点开始,用鼠标点击,并获得相应的结果 一旦你有了它,计算它击中视口边缘的位置。可以通过将x或y设置为视口的左/右/上/下并求解该变量来实现此目的。一旦知道线在何处撞击视口的边,请将其放回直线公式中,以计算需要在其之间绘制的两点 一旦掌握了这两点,剩下的就很简单了

我正在使用Raphael.js构建一个线图应用程序,需要绘制一条穿过两点并到达视口的线

我上传了一个模型,展示了我需要实现的目标:

感谢您的帮助


谢谢SVG,拉斐尔不能做无限的线条,但这并不意味着你不能伪造它

你需要学点数学

首先,从两点开始,用鼠标点击,并获得相应的结果

一旦你有了它,计算它击中视口边缘的位置。可以通过将x或y设置为视口的左/右/上/下并求解该变量来实现此目的。一旦知道线在何处撞击视口的边,请将其放回直线公式中,以计算需要在其之间绘制的两点

一旦掌握了这两点,剩下的就很简单了:

paper.path("M" + point1.x + " " + point1.y + "L" + point2.x + " " + point2.y);

SVG和拉斐尔(Raphaël)不能生成无限长的直线,但这并不意味着你不能伪造它

你需要学点数学

首先,从两点开始,用鼠标点击,并获得相应的结果

一旦你有了它,计算它击中视口边缘的位置。可以通过将x或y设置为视口的左/右/上/下并求解该变量来实现此目的。一旦知道线在何处撞击视口的边,请将其放回直线公式中,以计算需要在其之间绘制的两点

一旦掌握了这两点,剩下的就很简单了:

paper.path("M" + point1.x + " " + point1.y + "L" + point2.x + " " + point2.y);

也许你应该看看,这似乎做了你所寻找的大部分,这里有一些。它没有使用Raphaël,但它使用了一种类似的策略来兼容旧版本的IE VML后端。

也许你应该看看,这似乎是你想要的,这里有一些。它没有使用Raphaël,但它使用了一种类似的策略来兼容旧版本的IE VML后端。

谢谢Erik。尽管@sirbrialliance更为具体,我还是会查看JSXGraph项目。谢谢Erik。尽管@sirbrialliance更为具体,我还是要检查一下JSXGraph项目。