我有三个二维数组,它们都有相同的X和Y坐标,但值不同。 这些阵列中的每一个都代表一定高度的房间温度(例如,阵列1 = 10米,阵列2 = 5米,阵列3 = 3米)。
我创建了一个ILPlotCube,它为这些数组提供了三个不同的ILContourPlots,但它们都位于多维数据集(0)的同一Z轴点:
this.scene = new ILScene();
ILPlotCube pc = new ILPlotCube(twoDMode: false);
ILArray<float> TA = tempRoom.GetILArray("TA");
ILContourPlot cpa = new ILContourPlot(TA, create3D: false);
ILArray<float> TB = tempRoom.GetILArray("TB");
ILContourPlot cpb = new ILContourPlot(TB, create3D: false);
ILArray<float> TC = tempRoom.GetILArray("TC");
ILContourPlot cpc = new ILContourPlot(TC, create3D: false);
pc.Add(cpa);
pc.Add(cpb);
pc.Add(cpc);
scene.Add(pc);
ilPanel1.Scene = this.scene;
ilPanel1.Refresh();
结果图片:http://i.stack.imgur.com/VNLgB.jpg
如何手动设置图片中显示的立方体Z轴的范围,并手动设置每个ILContourPlot的Z轴位置,而不会弄乱ILContourPlots中的轮廓?
答案 0 :(得分:1)
ILNumerics中的等高线图是常规场景图形对象 - 就像evey其他图形一样。您可以使用常规组对象以仲裁方式转换它们:
ILArray<float> A = ILMath.tosingle(ILSpecialData.terrain);
ilPanel1.Scene.Add(new ILPlotCube(twoDMode: false) {
new ILGroup(translate: new Vector3(0,0,10)) {
new ILContourPlot(A["0:50;0:50"])
},
new ILGroup(translate: new Vector3(0,0,5)) {
new ILContourPlot(A["50:100;50:100"],lineWidth: 3)
},
new ILGroup(translate: new Vector3(0,0,3)) {
new ILContourPlot(A["150:200;150:200"])
}
});
给予:
但是如果你在2D设置中使用它会很快混淆。显然,您必须使用线和轮廓级别的配置选项来区分各个等高线图。或使用3D视图。