我是学生,只是编程并试用ILNumerics。 这是我的问题: 如何在更改色彩映射或用户数据后刷新或重新绘制IlPanal? 我想通过单击按钮刷新Surfacegraph。我想答案很简单,但过去两天我尝试了很多...我是个菜鸟;)
例如:
private void ilPanel_3D_Load(object sender, EventArgs e)
{
var scene = new ILScene();
var pc = scene.Add(new ILPlotCube(twoDMode: false));
var sf = pc.Add(new ILSurface(Z));
ilPanel_3D.Scene = scene;
}
private void button1_Click(object sender, EventArgs e)
{
// dont know what to put in here...
}
谢谢
答案 0 :(得分:0)
对于此类交互式操作,您必须访问每个驱动程序内部维护全局场景的“同步副本”。由于许多驱动程序可能同时显示一个场景,因此该内部副本仅反映由于用户交互/修改而导致的所有更改。
private void button1_Click(object sender, EventArgs e) {
ilPanel_3D.GetCurrentScene().First<ILSurface>().Colormap = Colormaps.Summer;
ilPanel_3D.Refresh();
}
PS:下次不需要等待两天......! ;)
@ Edit2:实际上,更新在全局场景中也可以正常工作。但是为了将更改广播到ilPanel1驱动程序,您必须在修改结束时添加对Configure()的调用。可以为其中一个公共父节点上的所有已更改节点调用一次Configure。因此,您可以简单地在场景上调用Configure():
private void button1_Click(object sender, EventArgs e) {
ilPanel_3D.Scene.First<ILSurface>().Colormap = Colormaps.Summer;
ilPanel_3D.Scene.Configure();
ilPanel_3D.Refresh();
}