请教一个算法方面的问题,我个人觉得很有难度的问题

dongle2001 2009-08-26 09:01:57
我现在要做一个类似jfreechart的画图工具。要实现类似jfreechart的setAutoRange这个功能。就是通过分析用户输入的点的数据,自动得到坐标系的范围和刻度,这个功能看似简单其实很复杂。因为用户输入的数据是随机的,所以还要考虑到小数的问题。我分析了jfreechart的代码,但是水平有限看不太懂。在这里想问问大家这个功能应该如何实现?大家给我提供一个思路。

这里有两个必须解决的难题:
1.无论用户输入的点数据如何,自动生成的坐标范围和刻度必须越规整越好。
2. 生成的坐标系中刻度的大小要和实际显示到界面时候的大小相联系,使得无论何时,坐标系的网格大小都能一致。
...全文
187 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
FelixDomingo 2009-08-27
  • 打赏
  • 举报
回复
全是高手啊。。。我第一次来就看见这么让人头痛的问题。。。汗。
  • 打赏
  • 举报
回复
我以前写过一个用JS绘制BarChart的程序也也遇到过同样的问题,我的解决方案是这样:
1.扫描整个值序列,找出最小和最大值
2.确定一个Y轴的最大分块个数,大于这个数显示起来会很难看,我当时定的是10
3.用最小和最大值之差依次去除
0.0000001,.0000002,.0000005
,0.000001,0.000002,0.000005
,0.00001,0.00002,0.00005,
......
1,2,5
....
1000,2000,5000
...
知道遇到一个至使相除结果<=最大分块个数的那个
这个值就是了
浴火涅磐 2009-08-27
  • 打赏
  • 举报
回复
可以取数据的范围啊,比如每次取的数据加上多少,除以多少,大约是多少,那样就会有一个区域会好很多
  • 打赏
  • 举报
回复
先做做看


多看多下点源代码
pheonixliu 2009-08-27
  • 打赏
  • 举报
回复
1.无论用户输入的点数据如何,自动生成的坐标范围和刻度必须越规整越好。
观察数据的最大值和最小值范围,初步定一个边界,随着数据的增多逐步修改,取所有数据的上下限,100以内的范围就自动分为100份,平均分,100以上可以分为1000份。
2. 生成的坐标系中刻度的大小要和实际显示到界面时候的大小相联系,使得无论何时,坐标系的网格大小都能一致。
试试视图转换功能,以不同的视图得到不同机构 vc貌似有类似坐标转化的函数,java应该也用

只是随便说说自己的想法
lh_fengyuzhe 2009-08-27
  • 打赏
  • 举报
回复
帮顶
applegree 2009-08-27
  • 打赏
  • 举报
回复
么听过
帮顶
applegree 2009-08-27
  • 打赏
  • 举报
回复
么听过
帮顶
dbsshida 2009-08-27
  • 打赏
  • 举报
回复
果然頭痛
xiaozejun 2009-08-26
  • 打赏
  • 举报
回复
要不将用户输入的数据进行四舍五入
你看行不 是不是简单一点
w11x22b33 2009-08-26
  • 打赏
  • 举报
回复
帮LZ顶,学习
fiwiner 2009-08-26
  • 打赏
  • 举报
回复
没看明白..
jinxfei 2009-08-26
  • 打赏
  • 举报
回复
你还是把jfreechart的代码扒拉下来研究吧。

这应该不是一句两句说得清楚的。
feishare 2009-08-26
  • 打赏
  • 举报
回复
我怎么杂看杂复杂!!
justinavril 2009-08-26
  • 打赏
  • 举报
回复
关于这类图像,2D和3D的处理有一套系统的理论,没认真研究过。。。

所以只能看看热闹了...
阿士匹灵 2009-08-26
  • 打赏
  • 举报
回复
很多细节要考虑
老紫竹 2009-08-26
  • 打赏
  • 举报
回复
这个功能看似简单其实很复杂

你解决了就不复杂了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧