1

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

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

4

2 回答 2

1

看看https://github.com/canvimation/canvimation.github.com可能是值得的,它包含使用画布的绘图应用程序的源代码。

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

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

取决于是否按住 shift 键以及形状属于哪个组,还有进一步的复杂性。然而,基础是存在的。


签出功能

在 index.html 中

下移
getPosition

在脚本/drawboundary.js

检查边界

是在

开启

在脚本/shape.js

形状


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

希望这个对你有帮助

于 2012-07-04T10:28:47.637 回答
0

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

这是链接:https ://github.com/ericdrowell/KineticJS

于 2012-07-04T08:10:12.853 回答