VTK 正交投影 透视投影

1.VTK默认透视投影(近大远小);

1.调用vtkCamera的ParallelProjectionOn函数开启

2.通过vtkCamera的SetParallelScale缩放

3.通过vtkCamera的SetClippingRange设置前后裁剪平面

2.正交投影(平行投影,远近一样):

//开启正交投影模式
renderer->GetActiveCamera()->ParallelProjectionOn();
renderer->GetActiveCamera()->SetParallelScale(10);
renderer->GetActiveCamera()->SetClippingRange(-100, 100);

正交投影样例:

Code:

#pragma once
//#include "vtk_include.h"#include <vtkLODActor.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPoints.h>
#include <vtkPolyData.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>#include <vtkRenderer.h>#include <vtkSphereSource.h>
#include <vtkTextActor.h>#include <algorithm>#include <array>
#include <vtkPlaneSource.h>
#include<stdio.h>
#include<iostream>
using namespace std;void main(){vtkNew<vtkNamedColors> colors;vtkNew<vtkRenderer> renderer;//平面vtkNew<vtkPlaneSource> plane;plane->SetCenter(0, 0, 0);//设置平面中心点坐标plane->SetOrigin(-10, -10, 0);//设置平面起点坐标,一般为平面左下角plane->SetPoint1(10, -10, 0);//设置平面第一条轴的长度plane->SetPoint2(-10, 10, 0);//设置平面第二条轴的长度plane->SetNormal(0, 0, 1);//设置平面的法向量plane->SetXResolution(10);//x方向分割数plane->SetYResolution(10);//y方向分割数vtkNew<vtkPolyDataMapper> planeMapper;planeMapper->SetInputConnection(plane->GetOutputPort());vtkNew<vtkActor> planeActor;planeActor->SetMapper(planeMapper);planeActor->GetProperty()->EdgeVisibilityOn(); //显示线框renderer->AddActor(planeActor);//球vtkNew<vtkSphereSource> sphereSource;sphereSource->SetRadius(5);sphereSource->SetCenter(5, 0, 0);sphereSource->Update();vtkNew<vtkPolyDataMapper> sphereMapper;sphereMapper->SetInputConnection(sphereSource->GetOutputPort());vtkNew<vtkActor> sphereActor;sphereActor->SetMapper(sphereMapper);sphereActor->GetProperty()->SetColor(colors->GetColor4d("Green").GetData());sphereActor->GetProperty()->EdgeVisibilityOn(); //显示线框renderer->AddActor(sphereActor);renderer->ResetCamera();//开启正交投影模式renderer->GetActiveCamera()->ParallelProjectionOn();renderer->GetActiveCamera()->SetParallelScale(10);renderer->GetActiveCamera()->SetClippingRange(-1000, 1000);renderer->SetBackground(colors->GetColor3d("SteelBlue").GetData());vtkNew<vtkRenderWindow> renderWindow;renderWindow->AddRenderer(renderer);renderWindow->SetWindowName("RenderWindowNoUIFile");vtkNew<vtkRenderWindowInteractor> iren;iren->SetRenderWindow(renderWindow);renderWindow->Render();iren->Initialize();iren->Start();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/467322.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openGauss学习笔记-218 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-I/O

文章目录 openGauss学习笔记-218 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-I/O218.1 查看I/O状况218.2 性能参数分析 openGauss学习笔记-218 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-I/O 获取openGauss节点的CPU、内存、I/O和网络资源使用情况&#xf…

LeetCode:83和82.删除排序链表中的重复元素I,II

这两题算是链表的基础题&#xff0c;就遍历删除没啥特点&#xff0c; 83甚至不需要考虑第一个结点的特殊情况&#xff0c;属实是名副其实的easy了 LeetCode&#xff1a;21.合并两个有序链表之第一次的特殊情况-CSDN博客 83. 删除排序链表中的重复元素 - 力扣&#xff08;Lee…

第三百二十二回

文章目录 1. 概念介绍2. 使用方法2.1 基本用法2.2 缓冲原理 3. 示例代码4. 内容总结 我们在上一章回中介绍了"FadeInImage组件"相关的内容&#xff0c;本章回中将介绍CachedNetworkImage组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

渗透测试练习题解析 3(CTF web)

1、[网鼎杯 2020 朱雀组]phpweb 1 考点&#xff1a;反序列化漏洞利用 进入靶场&#xff0c;查看检查信息&#xff0c;发现存在两个参数 func 和 p 查看页面源代码 payload&#xff1a;funcfile_get_contents&pphp://filter/resourceindex.php 整理后&#xff0c;就是 PHP 代…

HiveSQL——连续增长问题

注&#xff1a;参考文章&#xff1a; SQL连续增长问题--HQL面试题35_sql判断一个列是否连续增长-CSDN博客文章浏览阅读2.6k次&#xff0c;点赞6次&#xff0c;收藏30次。目录0 需求分析1 数据准备3 小结0 需求分析假设我们有一张订单表shop_order shop_id,order_id,order_time…

基于Java (spring-boot)的职工管理系统

一、项目介绍 基于Java (spring-boot)的职工管理系统功能&#xff1a;登录、老板、职员人事经理、职员、部门列表、职工列表、权限修改、查看所有管理、正在审核列表、添加考勤、添加职工、添加奖惩、合同列表、合同信息、等等等。 适用人群&#xff1a;适合小白、大学生、毕业…

【Java八股面试系列】JVM-类和对象加载过程

目录 类和对象的加载过程 类的生命周期 类的加载过程 加载 验证 准备 解析 初始化 类卸载 对象的加载过程 类和对象的加载过程 什么是类加载和对象加载? 类加载&#xff08;Class Loading&#xff09;&#xff1a;这是指JVM在运行时将类的字节码文件加载到内存中的…

利用pandas库进行数据分析

一.这段代码的主要目的是读取IMDB电影数据集&#xff0c;并进行一些基本的数据分析 # codingutf-8 import pandas as pd import numpy as np from matplotlib import pyplot as plt# 定义CSV文件的路径 file_path ./IMDB-Movie-Data.csv# 使用pandas的read_csv函数读取CSV文件…

海量数据处理商用短链接生成器平台 - 3

第三章 商用短链平台实战-账号微服务流量包设计 第1集 账号微服务和流量包数据库表索引规范讲解 简介&#xff1a;账号微服务和流量包数据库表索引规范讲解 索引规范 主键索引名为 pk_字段名; pk即 primary key;唯一索引名为 uk_字段名&#xff1b;uk 即 unique key普通索引…

力扣题目训练(9)

2024年2月2日力扣题目训练 2024年2月2日力扣题目训练412. Fizz Buzz414. 第三大的数415. 字符串相加129. 求根节点到叶节点数字之和131. 分割回文串65. 有效数字 2024年2月2日力扣题目训练 2024年2月2日第九天编程训练&#xff0c;今天主要是进行一些题训练&#xff0c;包括简…

[BJDCTF2020]ZJCTF,不过如此

伪协议读取next.php源码 preg_replace() /e代码执行漏洞_preg_replace /e-CSDN博客 查找资料我们发现&#xff0c;在php5.6及以下版本中&#xff0c;/e使得preg_replace的第二个参数可以被当作php代码执行&#xff0c;第二个参数中\\1指的是正则匹配到的第一组文本&#xff0c…

刘谦春晚魔术的数学原理

刘谦春晚魔术的数学原理 文章目录 前言魔术介绍魔术揭秘STEP 1STEP 2STEP 3STEP 4STEP 5STEP 6STEP 7 总结 前言 2024 春晚刘谦的第二个魔术很多人跟着一起做了&#xff0c;都觉得非常神奇。我也跟着操作了一遍&#xff0c;结果一眼就让我看出了背后的数学原理。下面给大家介…