问题描述
刚开始的时候,是用数组存储运动物体的运动坐标,然后绘制到picturebox上,但是后来发现随着时间的延长,数组的大小越来越大,占用的内存太大了,于是就想用缓存的方法,比如picturebox的大小是300*300,那么用一个300*300的bitmap来绘制物体的运动轨迹,然后再到picturebox里显示这个bitmap。那么问题来了:1.如果运动的物体的轨迹范围超出了bitmap的范围怎么办?2.如果用一个更大的bitmap来绘制轨迹,问题就又回到了原点,我到底需要用大多的bitmap才能满足需要呢,需要写程序之前估算物体运动的范围吗?不知道是自己的思路问题,还是没找到合适的方法,请大神们指教!
解决方案
解决方案二:
用bitmap不见得会比数组省内存,你数组优化一下吧,比如添加新坐标点之前判断一下是否存在该坐标点的记录,以及降低轨迹采样率
解决方案三:
引用1楼hironpan的回复:
用bitmap不见得会比数组省内存,你数组优化一下吧,比如添加新坐标点之前判断一下是否存在该坐标点的记录,以及降低轨迹采样率
还有更好的方法吗?你说的这个,我有个疑问:我的程序按数组的方式弄,一段时间后就有点卡,按你说的,我的想法是,根据显示比例尺,按比例显示数据里的坐标,那么问题来了:比如我现在数组里有10000个点,绘制10000个点,有点卡,那么我改成数组里有10000个点,只绘制100个点,是不是就不卡了?(我问这个的目的主要是存储坐标的数组里的数,我不想舍去)
解决方案四:
引用2楼qq_14993769的回复:
Quote: 引用1楼hironpan的回复:
用bitmap不见得会比数组省内存,你数组优化一下吧,比如添加新坐标点之前判断一下是否存在该坐标点的记录,以及降低轨迹采样率还有更好的方法吗?你说的这个,我有个疑问:我的程序按数组的方式弄,一段时间后就有点卡,按你说的,我的想法是,根据显示比例尺,按比例显示数据里的坐标,那么问题来了:比如我现在数组里有10000个点,绘制10000个点,有点卡,那么我改成数组里有10000个点,只绘制100个点,是不是就不卡了?(我问这个的目的主要是存储坐标的数组里的数,我不想舍去)
具体情况具体分析了,减少数据存储当然更快,当然前提是“不失真”,就像处理照片,高质量的照片细节表现更好,但是耗费存储空间,低质量的照片虽然占用空间少,但是细节表现不好了,这个平衡点要自己把握。。。