QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 796|回复: 4

怎么保存,才能使数据量最小

[复制链接]
发表于 2005-9-2 16:42:59 | 显示全部楼层 |阅读模式
不规则的线,一些圆啊,三角形,多边形什么的,在一平面上,怎么保存才能使数据量最小
发表于 2005-9-3 00:22:33 | 显示全部楼层
既然是无规则,就没有绝对小的方法吧
回复

使用道具 举报

发表于 2005-9-3 00:29:50 | 显示全部楼层
矢量图
回复

使用道具 举报

发表于 2005-9-3 00:43:53 | 显示全部楼层
你可以只保存“用到的bits”(Significant Bits)。比如:

一条线的坐标是( 15, 8 )( 9, 32 )。
如果用32bits的整数(unsigned long int)来存的话:
00000000000000000000000000001111
00000000000000000000000000001000
00000000000000000000000000001001
00000000000000000000000000100000
(外加一些其它的东西...)

但是如果只保存Significant Bits的话:
1111
1000
1001
100000
(外加一些其它的东西...)
虽然可以节省很多空间,但是到了要读取的时候,因为所有的bits都是联起来的,就像:
111110001001100000(外加一些其它的东西...)
那就联你自己都不知道哪几个bits是哪个数字了。

但是如果只保存"最长的"Significant Bits的话:
00000000000000000000000000000110
001111
001000
001001
100000
(外加一些其它的东西...)
这样,头32bits是“6”,表示往后的资料应该以每6个bits来划分:
[00000000000000000000000000000110] [001111] [001000] [001001] [100000] [(外加一些其它的东西...)]
用这种方法,一条线的坐标(15, 8 )(9, 32)需要56bits,外加一些其它的东西。相比之下第一种方法则需要128bits,外加一些其它的东西。

当然,如果数字都很大的话就节省不了多少了。在那种情况下就需要把“大的数字”和“小的数字”分开来储存。
回复

使用道具 举报

发表于 2005-9-4 18:23:42 | 显示全部楼层
点阵的方法不推荐的,你可以去看一下XML的扩展 SVG,
SVG一种矢量扩展存储方法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 11:25 , Processed in 0.073165 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表