vtkTransform实例 1
1. 4*4矩阵类vtkMatrix4x4
接口函数:void SetElement(int i, int j, double value),i行、j列的值为value

#ifndef INITIAL_OPENGL
#define INITIAL_OPENGL
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL)
VTK_MODULE_INIT(vtkInteractionStyle)
VTK_MODULE_INIT(vtkRenderingFreeType)
#endif
#include <iostream>
using namespace std;
#include<vtkSmartPointer.h>
#include<vtkPerspectiveTransform.h>
#include <vtkMatrix4x4.h>
#include <vtkTransform.h> int main()
{
vtkSmartPointer<vtkMatrix4x4> m=vtkSmartPointer<vtkMatrix4x4>::New();
double ma[][]={{,,,},
{,,,},
{,,,},
{,,,}};
for(int i=;i<;i++)
{
for(int j=;j<;j++)
{
//void SetElement(int i, int j, double value),i行、j列的值为value
m->SetElement(i,j,ma[i][j]);
}
}
//普通变换
vtkSmartPointer<vtkTransform> transform=vtkSmartPointer<vtkTransform>::New();
transform->SetMatrix(m);
double p[]={,,};//原始点
double normalProjection[];//投影变换后的点坐标
transform->TransformPoint(p,normalProjection);
cout<<"Original point :"<<p[]<<","<<p[]<<","<<p[]<<endl;
cout<<"Standard projection:"<<normalProjection[]<<","<<normalProjection[]<<","<<normalProjection[]<<endl;
//透视投影变换
double perspectiveProjection[];
vtkSmartPointer<vtkPerspectiveTransform>perspectiveTransform=vtkSmartPointer<vtkPerspectiveTransform>::New();
perspectiveTransform->SetMatrix(m);
perspectiveTransform->TransformPoint(p,perspectiveProjection);
cout<<"Perspective projection:"<<perspectiveProjection[]<<","<<perspectiveProjection[]<<","<<perspectiveProjection[]<<endl;
return ;
}
#ifndefINITIAL_OPENGL
#defineINITIAL_OPENGL
#include<vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL)
VTK_MODULE_INIT(vtkInteractionStyle)
VTK_MODULE_INIT(vtkRenderingFreeType)
#endif
#include<iostream>
usingnamespacestd;
#include<vtkSmartPointer.h>
#include<vtkPerspectiveTransform.h>
#include<vtkMatrix4x4.h>
#include<vtkTransform.h>
intmain()
{
vtkSmartPointer<vtkMatrix4x4>m=vtkSmartPointer<vtkMatrix4x4>::New();
doublema[][]={{,,,},
{,,,},
{,,,},
{,,,}};
for(inti=;i<;i++)
{
for(intj=;j<;j++)
{
//voidSetElement(inti,intj,doublevalue),i行、j列的值为value
m->SetElement(i,j,ma[i][j]);
}
}
//普通变换
vtkSmartPointer<vtkTransform>transform=vtkSmartPointer<vtkTransform>::New();
transform->SetMatrix(m);
doublep[]={,,};//原始点
doublenormalProjection[];//投影变换后的点坐标
transform->TransformPoint(p,normalProjection);
cout<<"Originalpoint:"<<p[]<<","<<p[]<<","<<p[]<<endl;
cout<<"Standardprojection:"<<normalProjection[]<<","<<normalProjection[]<<","<<normalProjection[]<<endl;
//透视投影变换
doubleperspectiveProjection[];
vtkSmartPointer<vtkPerspectiveTransform>perspectiveTransform=vtkSmartPointer<vtkPerspectiveTransform>::New();
perspectiveTransform->SetMatrix(m);
perspectiveTransform->TransformPoint(p,perspectiveProjection);
cout<<"Perspectiveprojection:"<<perspectiveProjection[]<<","<<perspectiveProjection[]<<","<<perspectiveProjection[]<<endl;
return;
}
vtkTransform实例 1的更多相关文章
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- js-静态、原型、实例属性
本篇来说一下js中的属性: 1.静态属性 2.原型属性 3.实例属性 静态属性: function klass(){} var obj=new klass(); klass.count=0; klas ...
- ZIP压缩算法详细分析及解压实例解释
最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...
- EntityFramework Core 1.1是如何创建DbContext实例的呢?
前言 上一篇我们简单讲述了在EF Core1.1中如何进行迁移,本文我们来讲讲EF Core1.1中那些不为人知的事,细抠细节,从我做起. 显式创建DbContext实例 通过带OnConfiguri ...
- redis集成到Springmvc中及使用实例
redis是现在主流的缓存工具了,因为使用简单.高效且对服务器要求较小,用于大数据量下的缓存 spring也提供了对redis的支持: org.springframework.data.redis.c ...
- 流程开发Activiti 与SpringMVC整合实例
流程(Activiti) 流程是完成一系列有序动作的概述.每一个节点动作的结果将对后面的具体操作步骤产生影响.信息化系统中流程的功能完全等同于纸上办公的层级审批,尤其在oa系统中各类电子流提现较为明显 ...
- UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)
前面[UWP开发之Mvvmlight实践五:SuspensionManager中断挂起以及复原处理]章节已经提到过Template10,为了认识MvvmLight的区别特做了此实例. 原代码地址:ht ...
- echarts+php+mysql 绘图实例
最近在学习php+mysql,因为之前画图表都是直接在echart的实例demo中修改数据,便想着两相结合练习一下,通过ajax调用后台数据画图表. 我使用的是echart3,相比较第二版,echar ...
- 【HanLP】HanLP中文自然语言处理工具实例演练
HanLP中文自然语言处理工具实例演练 作者:白宁超 2016年11月25日13:45:13 摘要:HanLP是hankcs个人完成一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环 ...
随机推荐
- [python]获取网页中内容为汉字的字符串的判断
实际上是这样,将获取到网页中表单内容与汉字字符串作比较,即: a = request.POST['a'] if a == '博客园': print 'ok' else: print 'false' a ...
- Unity3D 利用欧拉角实现实体的旋转
本文系作者原创,转载请注明出处 刚刚入门U3D,也是很多东西搞不懂,最先接触的就是自己尝试去获取键盘上的GetPress之类的事件了吧 官方的API DOC也是帮了不少忙,到处吸收了各位博主的文章也是 ...
- Dijkstra算法(三)之 Java详解
http://www.cnblogs.com/skywang12345/p/3711516.html
- Django基础之wsgi
Django 一 什么是web框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演 ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录(7)-使用percona监控MySQL
前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择 ...
- C++基本数据类型总结
一.整形 1.整形有char.short.int.long.long long,这5个也默认为signed XX ; 规则:short至少16位:int至少和short一样:long至少32位,且至少 ...
- [LeetCode] Number of Islands 岛屿的数量
Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surro ...
- Power Management开发的一般流程
本文作为一个提纲挈领的介绍性文档,后面会以此展开,逐渐丰富. 开发流程 针对一个PM feature进行开发,设计模型是第一步.模型设计好之后,还要保留参数接口,可以基于这些参数针对特殊个体进行优化. ...
- highcharts .net导出服务 和 两种导出方式
highcharts 的Net导出服务 GitHub上整理的https://github.com/imclem/Highcharts-export-module-asp.net 引用两个程序集 sh ...
- spring定时器,定时器一次执行两次的问题
Spring 定时器 方法一:注解形式 配置文件头加上如下: xmlns:task="http://www.springframework.org/schema/task" htt ...