文档章节

Activiz 使用笔记-2

小王爷_2019
 小王爷_2019
发布于 2015/09/07 10:43
字数 638
阅读 213
收藏 0

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

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

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

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

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

安装位置是:

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

安装结束后,可以打开上面的文件夹看一下:

其中bin文件夹内存放的就是我们以后要调用的dll。

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

安装结束后,新建一个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);
        }

运行效果如下:


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




© 著作权归作者所有

共有 人打赏支持
小王爷_2019
粉丝 14
博文 31
码字总数 35373
作品 0
海淀
程序员
私信 提问
Activiz 使用笔记-3 数据源(1)

activiz本身自带的user guide 比较简单,所以我按着vtk的user guide来慢慢学。从简单例子入手去学习VTK。当然我之前已经看过很多VTK相关的东西了,但是没有自己去写去总结,导致我一段时间不...

小王爷和老王爷
2015/09/07
230
0
Activiz 使用笔记-4 数据源(2)

上一篇写了一些数据源的生成或者读取方法。下面开始严肃的讲一下VTK中的数据集,虽然感觉有时候不会直接去用,但是感觉这个是基础,所以要先看。 直接看《VTK用户手册》的第44页 3.1 可视化v...

小王爷和老王爷
2015/11/24
124
0
Activiz 使用笔记-5 数据源(3)

这是根据 http://image.szpt.edu.cn/UploadFiles/%E6%95%B0%E6%8D%AE%E9%9B%86%E4%B8%8E%E6%95%B0%E6%8D%AE%E5%B1%9E%E6%80%A7.swf 上面的例子改编的,代码全部改为用C# 实现。 例子1:生成多......

小王爷和老王爷
2015/11/25
70
0
VTK实现Reslice

参考水灵大神的代码编写的,将其改为在C#下,用activiz实现。 大神的源码在这里: http://blog.csdn.net/wwwdolingnet/article/details/8551523 在c#中,有些VTK的功能不支持,所以需要自己改...

小王爷和老王爷
2015/11/27
247
0
Activiz 使用笔记 (6) 图像数据及其处理

http://image.szpt.edu.cn/UploadFiles/%E5%9B%BE%E5%83%8F%E6%95%B0%E6%8D%AE%E5%8F%8A%E5%85%B6%E5%A4%84%E7%90%86.swf 图像数据集用类vtkImageData表示。其结构与结构化点数据集是一样的,......

小王爷和老王爷
2015/11/26
99
0

没有更多内容

加载失败,请刷新页面

加载更多

rabbitmq

灰暗
23分钟前
0
0
Flink

flink HA部署 flink搭建,采用分布式部署方式,分别为A,B,C三个节点。其中A为master;A,B,C为worker。 本文使用的用户是hadoop用户(自己新建) 先决条件 Java 1.8.x or higher scala 自己使用...

-九天-
50分钟前
1
0
数据中台和传统数仓的区别

中台系统把业务层同性的算法能力,服务能力,业务能力高度集成,有效组织 ,动态规划。更好的帮助上层业务。 今天就让我们看看关于数据中台的问答吧。 1 Q : 什么是数据中台? A : 数据中台是...

hblt-j
52分钟前
4
0
Java在什么时候会出现内存泄漏

在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对...

群星纪元
55分钟前
2
0
android 打开摄像头

private SurfaceHolder mHolder; private SurfaceView mSurfaceView; private Camera mCamera; mSurfaceView = (SurfaceView) this.findViewById(R.id.camsurfaceView1); mHolder = mSurface......

jingshishengxu
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部