1

我正在用 html5 开发一个编辑器。我有用于在单击时创建形状的按钮,包括三角形、矩形、六边形、五边形、七边形、线条等。现在我还想对这些形状执行操作,例如旋转、翻转、撤消、重做等。我想将这些绘制的对象保存在 JavaScript 数组或其他东西中,以便在对画布执行操作后创建它们,因为单个形状无法在画布中旋转或翻转,我们必须重新绘制它。我怎样才能做到这一点?提前致谢。

4

2 回答 2

0

正如您所说,您必须在更改形状时清除上下文并重新绘制形状。清除和重绘所有上下文不是强制性的,您只需重绘修改形状的区域即可。

因此,您必须将您的形状视为具有自己的属性和渲染方法的对象(以 OOP 方式)。我要做的是创建另一个类来对形状应用变换(翻转只是-1 比例)。

如果你这样做,它可能会成为一项巨大的工作(你添加的功能越多,你的代码就越复杂,并且你的应用程序的第一个设计可能会在工作期间重新考虑)。我可以向您建议的是使用已经完成这项工作的框架。

例如,cgSceneGraph旨在让开发人员添加自己的渲染方法,并提供了很多方法来操作它们。我是框架的设计者,请随时询问有关如何应用转换或创建自己的节点的更多信息(教程和示例已经在网站上,但我会为您提供帮助)。

于 2013-02-18T11:52:25.303 回答
0

我有一个项目,如果你点击一个矩形的图像,你可以画一个矩形,点击一个椭圆然后你可以画一个椭圆。我的形状存储为对象,然后使用 Canvas 绘制并且可以翻转、旋转等我还没有实现撤消重做。

我的项目在http://canvimation.github.com/

我的项目的源代码位于https://github.com/canvimation/canvimation.github.com

master 分支是当前的工作代码。欢迎您使用任何代码或分叉项目。

于 2013-02-18T16:09:17.753 回答