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工具包,目标是普及自然语言处理在生产环 ...
随机推荐
- Login控件尝试
新建web项目,添加default.aspx.Register.aspx.Login.aspx. default.aspx中添加LoginName.LoginStatus,LoginName的Form ...
- 前端开发必备!Emmet使用手册
介绍 Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具: 基本上,大多数的文本编辑器都会允许你存储和重用一些代码块,我们称之为"片段".虽然片 ...
- 创建docker私人仓库
关于创建docker私人仓库 1.1. 安装步骤 1.1.1. 直接从公共库上面下载register镜像在本地执行 1.1.1.1. ...
- kubernetes部署Fluentd+Elasticsearch+kibana 日志收集系统
一.介绍 1. Fluentd 是一个开源收集事件和日志系统,用与各node节点日志数据的收集.处理等等.详细介绍移步-->官方地址:http://fluentd.org/ 2. Elastic ...
- Linux进程环境
Linux下C程序都是main开始的,main函数的原型是: int main(int argc, char **argv) 其中argc是命令行参数的数目,argc是指向参数的各个指针所构成的数组. ...
- CWMP开源代码研究5——CWMP程序设计思想
声明:本文涉及的开源程序代码学习和研究,严禁用于商业目的. 如有任何问题,欢迎和我交流.(企鹅号:408797506) 本文介绍自己用过的ACS,其中包括开源版(提供下载包)和商业版(仅提供安装包下载 ...
- [LeetCode] Tenth Line 第十行
How would you print just the 10th line of a file? For example, assume that file.txt has the followin ...
- Ubuntu安装Hadoop与Spark
更新apt 用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了.按 ctrl+alt+t 打开终端窗口,执行如下命令: sudo a ...
- 点击div 跳转并通过URL传参
点击div前要先给div绑定要传的参数: //给panel绑定自定义属性,方便在跳转时传带参数,键/值对排列 panel.attr("user_age",user_age); pa ...
- jquery option
转--jquery动态添加option示例 http://www.jb51.net/article/45031.htm //js动态添加option var sel= document.getElem ...