日期:2014-05-20  浏览次数:20708 次

java:如何在600*300的JPanel上画50万个点
做数据挖掘,我做了一个600*300的画布,想在上面做五十万个点的聚类,用g.drawString(".",x,y)方法,我不知道x,y该怎么表示了,600*300也就180000个像素点,我估计用像素表示效果不会太好,如果不用像素表示,还有别都办法吗,求高手!!!
问题补充:
点的格式(无重复点)
(22.1563 14.6563)
(27.9365 25.1893)
(23.9603 6.06664)

------解决方案--------------------
放大1000倍也就很够了,小数直接舍弃。
其实如果用Graphics2D的话,自带translate(double tx, double ty) ,也就是可以替你做坐标变换。



其实自己写个类,封装下BufferedImage,然后自行做坐标换算,更合理,而且更容易出效果。

因为你核心要表达的应该是聚类,也就是密集的地方,应该能够用颜色表达出其效果。

所以假设原始背景是黑色的话,坐标换算后的位置:如果没有点,就画个黑灰色点上去;如果有黑灰色点,就画个灰色点上去;如果有灰色点就画个亮灰;如果有亮灰就画个白点。

当然你也可以用色系来处理,重复点少的用 深蓝色,重复点多的用亮红色。这只是做法问题而已了。