热门标签 | 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 视区大小不变,当窗口变小时,映射到视区的物体也会相应变小

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

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

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



推荐阅读
  • td{border:1pxsolid#808080;}参考:和FMX相关的类(表)TFmxObjectIFreeNotification ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • 本文探讨了一种统一的语义数据模型,旨在支持物联网、建筑及企业环境下的数据转换。该模型强调简洁性和可扩展性,以促进不同行业间的插件化和互操作性。对于智能硬件开发者而言,这一模型提供了重要的参考价值。 ... [详细]
  • SDWebImage第三方库学习
    1、基本使用方法异步下载并缓存-(void)sd_setImageWithURL:(nullableNSURL*)urlNS_REFINED_FOR_SWIFT;使用占位图片& ... [详细]
  • 本文探讨了在 SQL Server 2012 的 Integration Services 项目中配置 ADO.NET 源时遇到的错误及其解决方案。 ... [详细]
  • CSS 百分比单位的取值依据是什么
    本文详细探讨了 CSS 中百分比单位的取值依据,包括不同定位方式下的包含块概念及其应用。通过具体的示例和代码,帮助读者更好地理解和掌握这一知识点。 ... [详细]
  • 本文探讨了当通过Nginx访问网站时出现504 Gateway Timeout错误的解决方案,特别是当请求处理时间超过30秒时的情况。文章提供了调整PHP-FPM配置的具体步骤,以延长请求超时时间。 ... [详细]
  • DirectShow Filter 开发指南
    本文总结了 DirectShow Filter 的开发经验,重点介绍了 Source Filter、In-Place Transform Filter 和 Render Filter 的实现方法。通过使用 DirectShow 提供的类,可以简化 Filter 的开发过程。 ... [详细]
  • 本文详细介绍了如何在 Oracle 数据库中进行筛选备份和恢复操作,包括权限授予、目录管理、数据导出和导入等步骤。 ... [详细]
  • 在移动端开发中,多点触控手势是提升用户体验的重要手段。然而,目前只有iOS浏览器原生支持手势事件,其他设备需要通过touchstart、touchmove和touchend等基础事件进行自定义实现。本文将详细介绍如何在Vue项目中实现多点触控手势。 ... [详细]
  • 说明Python教程正在编写中,欢迎大家加微信sinbam提供意见、建议、纠错、催更。drymail是一个邮件发送库,封装了Python的smtplib ... [详细]
  • 本文档提供了 TA-Lib 的安装指南、快速入门、高级应用及各类技术指标的详细介绍。 ... [详细]
  • Leetcode学习成长记:天池leetcode基础训练营Task01数组
    前言这是本人第一次参加由Datawhale举办的组队学习活动,这个活动每月一次,之前也一直关注,但未亲身参与过,这次看到活动 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 使用方法:将要控制的角色拖到TargetBody,将相机的焦点拖到CamerPivot,,建议CameraPivot是一个放在TargetBody下的子物体,并且位置应该是在Tar ... [详细]
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社区 版权所有