【问题标题】:Get starting point and ending point of a line in EaselJS在EaselJS中获取一条线的起点和终点
【发布时间】:2014-02-21 10:20:27
【问题描述】:

是否可以从绘制的线中检索这些点? API 并没有真正帮助我。

var line = new createjs.Graphics();
line.beginStroke( 'black' );
line.moveTo( 0, 0 );
line.lineTo( 100, 100 );

现在我正在创建 Point 类的实例并将坐标用作参数。

var point1 = new Point(0, 0);
var point2 = new Point(100, 100);

var line = new createjs.Graphics();
line.beginStroke( 'black' );
line.moveTo( point1.x, point1.y );
line.lineTo( point2.x, point2.y );

【问题讨论】:

  • 请更具体地说明您正在尝试做什么以及到目前为止您已经尝试过什么。你只是想找到一条线的起点和终点吗?或者沿线的任何一点?
  • 对,只是起点和终点,仅此而已。

标签: javascript html canvas easeljs


【解决方案1】:

虽然理论上可以检索这些坐标,但您最好将它们保存为自定义对象(例如,点,就像您已经做的那样)。


Graphics-object 将这些绘图指令和坐标保存在 Commands (Command(f, params, path)) 中 - 所有活动命令都保存在一个数组中:line._activeInstructions

您必须通过第一个和最后一个命令并检索命令的params-array,这就是您的要点。但这仅适用于您的简单线路。由于这使用了 Graphics 对象的内部变量和方法,我强烈建议 不要 这样做。 此外,我建议您在这种情况下保持代码的可读性,而不是尝试通过不使用具有几乎无法测量的内存效应的 2 点来节省一些内存。

【讨论】:

  • 谢谢,我认为这会有一个简单的操作,就像在 KineticJS 中一样。
  • 问题是,Graphics-object 可用于绘制任何路径/形状,这样的通用对象无法预期形状只是一条线(理论上是的,但有不必要的开销),但是您可以编写自己的类,该类继承自 Graphic 并实现您想要的那些点成员。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-11
  • 1970-01-01
  • 2018-09-27
相关资源
最近更新 更多