目前,PolarChart 将所有坐标与线条连接起来创建多边形。我只是希望它用点绘制每个点而不是将它们连接在一起。这可能吗?
我尝试过使用translateValueThetaRadiusToJava2D()
和 Graphics2D 来绘制圆圈,但它非常笨重且做作。
欢迎任何建议!
So the DefaultPolarItemRenderer
接收所有极点,将极点转换为常规 Java2D 坐标,制作一个Polygon
有了这些点,然后绘制它。这是我如何绘制点而不是多边形的方法:
public class MyDefaultPolarItemRenderer extends DefaultPolarItemRenderer {
@Override
public void drawSeries(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, PlotRenderingInfo info, PolarPlot plot, XYDataset dataset, int seriesIndex) {
int numPoints = dataset.getItemCount(seriesIndex);
for (int i = 0; i < numPoints; i++) {
double theta = dataset.getXValue(seriesIndex, i);
double radius = dataset.getYValue(seriesIndex, i);
Point p = plot.translateValueThetaRadiusToJava2D(theta, radius,
dataArea);
Ellipse2D el = new Ellipse2D.Double(p.x, p.y, 5, 5);
g2.fill(el);
g2.draw(el);
}
}
}
然后在其他地方实例化这个类:
MyDefaultPolarItemRenderer dpir = new MyDefaultPolarItemRenderer();
dpir.setPlot(plot);
plot.setRenderer(dpir);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)