如何在画布中选择并拖动一条线?

时间:2012-07-04 08:05:55

标签: html5 canvas drag

我现在正在制作一个绘画应用程序。它使用html画布。用户可以在画布上绘制形状。

现在我遇到了一个问题。我想选择我在画布上绘制的线条。选中它后,我可以拖动它或删除它。我该如何实现它?有什么好主意吗?

2 个答案:

答案 0 :(得分:1)

查看https://github.com/canvimation/canvimation.github.com这包含使用canvas的绘图应用程序的源代码可能值得您花些时间。

您应该注意,此应用程序正在重新编码,但还没有使用新代码在线的工作版本。新源代码位于 stage1 分支中。希望这个新代码比旧代码更容易理解,下面提到的代码来自 stage1 分支。

基本上,为绘制的每个形状创建一个形状对象,其中包括有关eh形状的所有数据,包括路径数据和给出形状周围的矩形边界的数据。单击“boundarydrop”div时,将调用函数checkBoundary,并传递有关shift键和光标位置的数据。然后对于每个形状,第一个检查是查看光标是否在形状的边界内,如果是,则执行更精细的检查。对于闭合形状,检查光标是否在形状内部,如果光标靠近路径则为开放形状。

根据是否按住shift键以及形状属于哪个组,还有其他复杂情况。然而,基础知识就在那里。


结帐的功能

index.html

中的

降档
为getPosition

脚本/ drawboundary.js中的

checkBoundary

伊辛

ISON

脚本/ shape.js中的

形状


该应用程序的在线工作版本位于http://canvimation.github.com/但是它使用了主分支中的旧代码,并且存在一些错误,但它可以让您了解应用程序的功能。

希望这是一些帮助

答案 1 :(得分:0)

有一个名为kinetic.js的库,您可以使用选择功能跟踪在画布上绘制的形状。

以下是链接:https://github.com/ericdrowell/KineticJS