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工具包,目标是普及自然语言处理在生产环 ...
随机推荐
- Merge 的小技巧
今天跟大家分享一下搬动数据使用Merge的方法. 有些时候,当我们做数据搬动的时候,有时候做测试啊,换对象啊,就会存在有时候外键存在,不知道怎么对应的关系.比如我现在有架构相同的两组table , A ...
- 用批处理脚本一键安装 MongoDB
下载MongoDB安装文件,解压到D:\MongoDB: 运行脚本: @echo off set mongobin=D:\MongoDB ::在mongodb文件夹下建立data,log文件夹 md ...
- OSI七层模型详解 TCP/IP协议
总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...
- RabbitMQ调试与测试工具-v1.0.1 -提供下载测试与使用
最近几天在看RabbitMQ,所以发了两天时间写了一个调试和测试工具.方便使用. 下载地址:RabbitMQTool-V1.0.1.zip
- 【Pyrosim案例】02:简单燃烧
1 案例说明 本案例介绍一个简单的燃烧模拟. 本案例通过指定热释放率(Heat Release Rate,HRR)来定义一个500kW的燃烧火焰.利用热释放率来定义燃烧火焰在火灾安全工程中描述火焰的一 ...
- Java Generics and Collections-2.4-2.5
2.4 The Get and Put Principle Get and Put Principle: 用于取对象的泛型集合,声明为 <? extends T> 用于存对象的泛型集合,声 ...
- HDOJ 1326. Box of Bricks 纯水题
Box of Bricks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- 【repost】document.write的用处
document.write的用处 document.write是JavaScript中对document.open所开启的文档流(document stream操作的API方法,它能够直接在文档流中 ...
- 让div盒子相对父盒子垂直居中的几种方法
div相对于父盒子垂直居中的几种方法,之前在网上看到很多种方法,确实说的很对,也很具体,但是我感觉对于初学者来说,一目了然是最重要的,所以,我把很高深的技巧,和很复杂的css样式都剔除掉,旨在让更多人 ...
- [LeetCode] Frog Jump 青蛙过河
A frog is crossing a river. The river is divided into x units and at each unit there may or may not ...