0
我正在使用orson圖表的Chart3D來製作曲面圖,並且由於某種原因圖形沒有正確着色漸變。該代碼是下面:Orsoncharts chart3D表面渲染不起作用
@SuppressWarnings("serial")
Function3D function = new Function3D() {
@Override
public double getValue(double x, double z) {
double xKey = Math.round(x * 100)/100;
double zKey = Math.round(z * 100)/100;
if(plotValues.containsKey(new Point2D(xKey,zKey))) {
return plotValues.get(new Point2D(xKey,zKey));
} else {
return 0;
}
}
};
String xTitle = factorSweepComboBox.getSelectionModel().getSelectedItem();
String yTitle = outputComboBox.getSelectionModel().getSelectedItem();
String zTitle = factorSweep2ComboBox.getSelectionModel().getSelectedItem();
// Create surface plot
Chart3D chart = Chart3DFactory.createSurfaceChart(
"",
"",
function, xTitle, yTitle, zTitle);
XYZPlot xyzplot = (XYZPlot) chart.getPlot();
xyzplot.setDimensions(new Dimension3D(10, 10, 10));
ValueAxis3D xAxis = xyzplot.getXAxis();
xAxis.setRange(xLow, xUp);
ValueAxis3D zAxis = xyzplot.getZAxis();
zAxis.setRange(zLow, zUp);
ValueAxis3D yAxis = xyzplot.getYAxis();
yAxis.setRange(yLow, yUp);
SurfaceRenderer renderer = (SurfaceRenderer) xyzplot.getRenderer();
renderer.setColorScale(new GradientColorScale(new Range(yLow, yUp),
Color.BLUE, Color.YELLOW));
Chart3DViewer chartPanel = new Chart3DViewer(chart);
chartPane.getChildren().addAll(chartPanel);
plotValues是一個HashMap映射(X,Z)的2D點到一個雙Y輸出值。 xLow,xUp等是範圍值,並且都被正確設置。 yLow和yUp是我希望他們成爲的。但是,當我運行代碼時,我的表面都是一種顏色,即使鍵看起來正確,也沒有漸變。我也試過:
SurfaceRenderer renderer = new SurfaceRenderer(function);
renderer.setColorScale(new GradientColorScale(new Range(yLow, yUp),
Color.BLUE, Color.YELLOW));
xyzplot.setRenderer(renderer);
和結果是一樣的。這裏是一個截圖的鏈接:http://i.imgur.com/F2iYFh1.png