Vì vậy, DefaultPolarItemRenderer
lấy tất cả các điểm cực, chuyển đổi điểm cực sang tọa độ Java2D thông thường, tạo Polygon
với các điểm đó và sau đó vẽ nó. Đây là cách tôi đã nhận nó để vẽ chấm thay vì một đa giác:
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);
}
}
}
và sau đó khởi tạo lớp này ở nơi khác:
MyDefaultPolarItemRenderer dpir = new MyDefaultPolarItemRenderer();
dpir.setPlot(plot);
plot.setRenderer(dpir);
Nguồn
2010-03-17 18:12:11
(oops, không biết định dạng messes lên tại đây) –