Activiz 使用笔记-2

换了个新机器,速度快了好多,因此开开森森的装了64位的activiz没想到出了点小问题,下面把遇到的问题和解决方案说一下:php

64位的下载地址也在这里:web

http://www.kitware.com/opensource/avdownload.php
架构

安装过程也是傻瓜式的,只要选择好安装位置便可,其他直接下一步。app

此次我使用的安装文件是: ActiViz.NET-5.8.0.607-win64-OpenSource.exe 函数

安装位置是:工具

D:\Program Files\ActiViz.NET 5.8.0 OpenSource Editionthis

安装结束后,能够打开上面的文件夹看一下:spa

其中bin文件夹内存放的就是咱们之后要调用的dll。调试

********************分割线************************************************component

安装结束后,新建一个vs2010的C#窗体应用项目test1:

和32位activiz同样,首先在项目中添加引用:

添加这两个文件到引用。

此时,vs2010会给出两个警告:


这时由于,此次装的是64位amd架构的activiz,可是vs2010默认的生成项目的处理器架构是“x86”的,因此会出现冲突,解决办法就是:点击 项目-》test1属性-》生成

将其中的“目标平台” 从x86改成:x64便可,固然 release也要修改。


这个时候警告就消失了。

******************分割线**********************************************

在后台代码中添加命名空间的引用:

using Kitware.VTK;
******************分割线***********************************************

这个时候就有了新的问题:那就是没法像上一篇笔记中写的那样,在工具箱中添加RenderWindowControl这个工具。

这个时候须要本身写代码来实如今窗体上添加RenderWindowControl。实现方式以下:


在窗体代码中添加一个私有成员和私有方法:

 private RenderWindowControl _renwin = null;

///初始化renderwindowcontrol

    private void InitRenderWindowControl()
        {
            _renwin = new RenderWindowControl();
            _renwin.AddTestActors = false;
            _renwin.Location = new System.Drawing.Point(10,10);
            _renwin.Name = "_renwin";
            _renwin.Size = new System.Drawing.Size(100,100);
            _renwin.TabIndex = 0;
            _renwin.TestText = null;

            this.Controls.Add(_renwin);

        }

而后,在窗体的构造函数中添加这个初始化方法。

  public Form1()
        {
            InitializeComponent();
            InitRenderWindowControl();
        }

点击调试程序,能够看到窗体上出现了renderwindowcontrol

也能够在初始函数中为renderwindowcontrol添加load事件:

  _renwin.Load += new EventHandler(_renwin_Load);

(这一行代码能够加在InitRenderWindowControl()方法中,也能够加在窗体的构造函数中。)

为load事件添加代码:

 void _renwin_Load(object sender, EventArgs e)
        {
            vtkSphereSource sphere = vtkSphereSource.New();
            sphere.SetThetaResolution(8);
            sphere.SetPhiResolution(16);

            vtkShrinkPolyData shrink = vtkShrinkPolyData.New();
            shrink.SetInputConnection(sphere.GetOutputPort());
            shrink.SetShrinkFactor(0.9);

            vtkPolyDataMapper mapper = vtkPolyDataMapper.New();
            mapper.SetInputConnection(shrink.GetOutputPort());

            // The actor links the data pipeline to the rendering subsystem
            vtkActor actor = vtkActor.New();
            actor.SetMapper(mapper);
            actor.GetProperty().SetColor(1, 0, 0);

            // Create components of the rendering subsystem
            //
            vtkRenderer ren1 = _renwin.RenderWindow.GetRenderers().GetFirstRenderer();
            vtkRenderWindow renWin = _renwin.RenderWindow;

            // Add the actors to the renderer, set the window size
            //
            ren1.AddViewProp(actor);
            renWin.SetSize(250, 250);
            renWin.Render();
            vtkCamera camera = ren1.GetActiveCamera();
            camera.Zoom(1.5);
        }

运行效果以下:


***********结束啦,(*^__^*) *****************************

相关文章
相关标签/搜索