如何有效地绘制数千行的图纸?

时间:2014-01-08 23:48:32

标签: android achartengine

我需要绘制一张代表高度轮廓的图片,以一种机器人快速绘制图像的方式。这是一个高度为50.000或甚至更高的高度剖面。我正在使用AChartEngine,但是对于这个庞大的线条而言,绘制和缩放的速度并不是很快。有没有适合该提议的其他lib?你认为.svg绘图会更好吗?

感谢您的建议。

1 个答案:

答案 0 :(得分:0)

我不知道任何现有的libs正在做你想要的。如果你想自己编码,这是我的想法。困难主要在于缩放,否则你可以预先计算整个图像。我想最好的方法是分层预计算。例如,您可以预先计算:

pre-compute(region r)
    l = the list of lines intersecting with r
    if l has less than T1 number of lines:
        pre-compute the image in r with l;
    else 
        divide r evenly into four subregions r1,r2,r3,r4
        pre-compute(r1)
        pre-compute(r2)
        pre-compute(r3)
        pre-compute(r4)

也可以缓存与任何区域相交的行列表。您可以在四叉树中缓存预先计算的图像和线列表。如果添加/删除行,也可以在树中逐步执行。然后在绘制时,使用以下算法:

 draw(region r):
     if r is a subset of a pre-computed region:
         draw r using the pre-computed image
     else
         if r is smaller than T2:
             l = the list of lines intersecting with r
             if l has less than T1 number of lines: 
                 draw r with l
                 return 
         divide r evenly into four regions r1, r2, r3, r4
         draw(r1)
         draw(r2)
         draw(r3)
         draw(r4)

此算法中的怪癖可能是选择正确的阈值T1,T2,您可以通过使算法缓存无关而避免。如果您有任何其他问题,请告诉我。

相关问题