1

在我的应用程序中,客户端用户可以绘制一些形状或线条,然后这些形状数据应该发送到服务器并保存到数据库中。形状应该可以在客户端上重新绘制。

我的问题是如何设计一种有效的数据结构来表示形状,数据结构应该易于传输和保存到数据库。

谢谢!

EDTION:这些形状包括规则形状(如圆形)和用户可以自由绘制的不规则形状。

4

1 回答 1

0

我认为这取决于您如何让用户绘制形状。他们只是在画布上移动光标吗?如果是这种情况,那么它没有太多的数学知识,所以 cbranch 的解决方案可能是一个不错的选择。它只需要是一个开/关位数组。您甚至可以使用某种压缩技术对其进行优化。

但是,如果您为他们提供特定的绘制方式,例如方形工具、圆形工具、贝塞尔工具,那么它们中的每一个都可以比像素数据更有效地存储。正方形可以存储为一个简单的结构,例如:

struct square {
    int x;
    int y;
    int length;
}

一个圆圈:

struct circle {
    int x;
    int y;
    int radius;
}

贝塞尔曲线:

struct bezier {
    int x1;
    int y1;
    int x2;
    int y2;
}

然后,当您将其重新绘制到屏幕上时,只需从数据中重新创建适当类型的形状。

于 2012-11-01T04:17:38.567 回答