运行时访问Panel和Camera子级

时间:2013-09-03 08:11:32

标签: c# ilnumerics

我尝试使用ILNumerics来显示某些曲面。

  1. 如何在运行时访问相机的儿童。例如,当我使用鼠标旋转曲面时,究竟会发生什么变化?
  2. 另一个问题是,当我使用鼠标旋转绘图时,我不再控制它。例如,我在ILPanel场景中添加了一个摄像头和一个表面。当我点击一个按钮时,相机的位置会发生变化,但是,如果我旋转表面然后点击按钮,则没有任何反应。
  3. 另一件事是,如何用另一个表面替换添加到相机的表面?

    int pos = 200;
    private void button1_Click(object sender, EventArgs e)
    {
        pos -= 10;
        var cam = ilPanel1.Scene.Camera;
        cam.Reset();
        cam.Position = new Vector3(15, -200, pos);
        cam.LookAt = new Vector3(15, 15, 65);
        ilPanel1.Refresh(); 
    }
    

1 个答案:

答案 0 :(得分:1)

  1. 当绘图立方体被赋予任何驱动程序时,该驱动程序将保留其自己的plotcube副本(!)。鼠标交互仅在副本上完成。副本在没有任何缓冲区副本的情况下高效完成,并且在每个渲染帧上始终与其原始文件同步。如果要使用交互结果检查场景的参数,请按面板获取驱动程序副本.GetCurrentScene()。

  2. 对全局场景的更改可能会与交互引入的更改发生冲突。但是,我认为,全球变化应该优先考虑。如果它们未与驱动程序副本同步,则可能会遇到错误。我们将研究这个问题。

  3. ILGroup.Children属性允许访问组内的任何子级。用它来删除一个对象。使用常用的Add()方法将新对象添加到组中。