热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

计算机图形学窗口的定义,计算机图形学——窗口到视口的变换

一、窗口和视口世界坐标系中要显示的区域(通常在观察坐标系内定义)称为窗口。窗口映射到显示器(设备)上的区域称为视口(或称视区)。窗口定义显示什么;视口定义在何处显示世

一、窗口和视口

世界坐标系中要显示的区域(通常在观察坐标系内定义)称为窗口。

窗口映射到显示器(设备)上的区域称为视口(或称视区)。

窗口定义显示什么;视口定义在何处显示

0d852008761a419dbba7a2159b05524e.jpg

世界坐标系中的一个窗口可以定义对应于多个视口

d15c534a52b140b2910f3c1105a0e8b0.jpg

如何将窗口内的图形在视口中显示出来呢?

必须经过将窗口到视口的变换处理,这种变换就是观察变换(Viewing Transforma)。

二、观察变换

1、变焦距效果

697e79ac8091454ca642cc66c5b0eabc.jpg

当窗口变小时,由于视口大小不变,就可以放大图形对象的某一部分,从而观察到在较大的窗口时未显示出的细节。

而当窗口变大,视口不变时,视口内显示的内容不断变小。

类似于照相机的变焦处理。

2、整体缩放效果

当窗口大小不变而视口大小发生变化时,得到整体放缩效果。这种放缩不改变观察对象的内容。

1d8a259940d74c2eb20a2c2bfc52e874.jpg

如果把一个固定大小的窗口在一幅大图形上移动,时空不变,会产生什么效果?

漫游效果!

三、窗口到视口的变换

为了全部、如实地在视口中显示出窗口内的图形对象,就必须求出图形在窗口和失去键的映射关系。

需要根据用户所定义的参数,找到窗口和视口之间的坐标对应关系。

920d668dff9c49fc8604999790852ac8.jpg

f37445564f6b418eb284d0457424e100.jpg

这个保持比例的性质使得这个映射有线性形式:

d7761c1965d84bb19b468d3b6882c01c.jpg

A看做放大x的部分,B看做常数。

C看做放大y的部分,D看做常数。

1b57fca16e42491e9b1aaa49f6b226d9.jpg

四、练习题

下列有关窗口和视区的论述中,正确的是:

A 局部坐标系中要显示的区域称为窗口

B 窗口和视区是一一对应关系

C 窗口到视区的映射是一个"保持比例"的映射

D 视区大小不变,当窗口变小时,映射到视区的物体也会相应变小

窗口是世界坐标系内要显示的区域

一个窗口可能有多个视区对应

视区大小不变,窗口变小,映射到视区的物体会变大。



推荐阅读
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 基因组浏览器中的Wig格式解析
    本文详细介绍了Wiggle(Wig)格式及其在基因组浏览器中的应用,涵盖variableStep和fixedStep两种主要格式的特点、适用场景及具体使用方法。同时,还提供了关于数据值和自定义参数的补充信息。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • Android 九宫格布局详解及实现:人人网应用示例
    本文深入探讨了人人网Android应用中独特的九宫格布局设计,解析其背后的GridView实现原理,并提供详细的代码示例。这种布局方式不仅美观大方,而且在现代Android应用中较为少见,值得开发者借鉴。 ... [详细]
  • Unity编辑器插件:NGUI资源引用检测工具
    本文介绍了一款基于NGUI的资源引用检测工具,该工具能够帮助开发者快速查找和管理项目中的资源引用。其功能涵盖Atlas/Sprite、字库、UITexture及组件的引用检测,并提供了替换和修复功能。文末提供源码下载链接。 ... [详细]
  • 深入解析 Vue 的 Transition 组件与第三方动画库的结合使用
    本文详细介绍了 Vue 中的 Transition 组件,探讨其内置类名机制、触发时机及自定义类名的应用。同时,结合 animate.css 和 GSAP 等第三方库,展示了如何实现复杂的动画效果。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 本文探讨了如何在 F# Interactive (FSI) 中通过 AddPrinter 和 AddPrintTransformer 方法自定义类型(尤其是集合类型)的输出格式,提供了详细的指南和示例代码。 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 本文介绍了如何在 C# 和 XNA 框架中实现一个自定义的 3x3 矩阵类(MMatrix33),旨在深入理解矩阵运算及其应用场景。该类参考了 AS3 Starling 和其他相关资源,以确保算法的准确性和高效性。 ... [详细]
  • Python中HOG图像特征提取与应用
    本文介绍如何在Python中使用HOG(Histogram of Oriented Gradients)算法进行图像特征提取,探讨其在目标检测中的应用,并详细解释实现步骤。 ... [详细]
  • 本文将详细探讨 Java 中提供的不可变集合(如 `Collections.unmodifiableXXX`)和同步集合(如 `Collections.synchronizedXXX`)的实现原理及使用方法,帮助开发者更好地理解和应用这些工具。 ... [详细]
  • 一个登陆界面
    预览截图html部分123456789101112用户登入1314邮箱名称邮箱为空15密码密码为空16登 ... [详细]
  • 洞态IAST Java Agent 实现AOP技术详解
    本文深入探讨了洞态IAST Java Agent如何通过AOP技术实现方法调用链和污点值传播等功能,为读者提供了详细的源码分析。 ... [详细]
  • 理解与应用:独热编码(One-Hot Encoding)
    本文详细介绍了独热编码(One-Hot Encoding)与哑变量编码(Dummy Encoding)两种方法,用于将分类变量转换为数值形式,以便于机器学习算法处理。文章不仅解释了这两种编码方式的基本原理,还探讨了它们在实际应用中的差异及选择依据。 ... [详细]
author-avatar
佩君晓萍4
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有