gpt4 book ai didi

绘制点而不是线? JFreeChart PolarChart

转载 作者:行者123 更新时间:2023-12-02 10:52:44 25 4
gpt4 key购买 nike

目前,PolarChart 将所有坐标与线条连接起来创建多边形。我只是希望它用一个点绘制每个点而不是将它们连接在一起。这可能吗?

我尝试过使用 translateValueThetaRadiusToJava2D() 和 Graphics2D 来绘制圆圈,但它非常笨拙且做作。

欢迎任何建议!

最佳答案

因此,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);

关于绘制点而不是线? JFreeChart PolarChart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2433980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com