1

我目前正在使用 ILPlotCube 对象来显示从用户数据生成的表面,并且我创建了一个上下文菜单并添加了选项来更改一些绘图设置,例如颜色图、照明等。我遇到的问题是一旦进行了更改,绘图的图形就会自动更新;因为它代表我可以更新添加的灯光或更改的颜色图的唯一方法是调用绘图对象上的许多鼠标事件之一。我已经搜索了 ILPlotCube、ILSurface 和 ILScene 类,但找不到任何似乎可以做到这一点的功能(我最初认为 ILPlotCube 类的 Reset() 方法可以完成所需的操作,但实际上并没有)。有没有人有更多关于图形更新的信息以及可能的解决方案?

4

1 回答 1

1

ILNumerics 中节点上的鼠标事件提供了 ILMouseEventArgs 的参数。该类型提供 Refresh 属性。在鼠标事件处理程序中将此设置为 true。处理完所有事件后会触发重绘:

void iILNode_MouseClick(object sender, ILMouseEventArgs e) {
    if (e.DirectionUp) {
        //modify scene here
        // .. 
        // trigger redraw of the scene
        e.Refresh = true; 
    }
}

关于鼠标事件处理的文档:http: //ilnumerics.net/mouse-events.html

于 2013-07-24T08:24:45.733 回答