计算机图形学作业:三维线段的图形变换
1. 将三维空间某线段 P1P2进行如下的操作,请按要求回答问题:
(1) 沿 X 轴、Y 轴和 Z 轴分别平移 dx、dy 和 dz 的长度,给出相应的变换矩阵。
变换矩阵为:
T=100001000010dxdydz1
(2) 绕 X 轴旋转 alpha 度角,绕 Y 轴旋转 Beta 度角,绕 Z轴旋转 theta 度角,给出相应的变换矩阵。
变换矩阵(逆时针旋转)为:
T=10000cosαsinα00-sinαcosα00001 cosβ0-sinβ00100sinβ0cosβ00001cosθsinθ00-sinθcosθ0000100001
(3) 在保持 P1 点位置不变的情况下,将线段放大 s 倍,给出相应的变换矩阵。
设P1 点坐标为(x1,y1,z1)
变换矩阵为:
T=100001000010-x1-y1-z11 s0000s0000s00001100001000010x1y1z11
4) 依次完成(1)(2)(3)步的操作,给出相应的变换矩阵。
首先,沿 X 轴、Y 轴和 Z 轴分别平移 dx、dy 和 dz 的长度(设P1 点坐标为(x1,y1,z1)):
T=100001000010dxdydz1
故
x'y'z'1=xyz1T![]()
然后,绕 X 轴旋转 alpha 度角,绕 Y 轴旋转 Beta 度角,绕 Z轴旋转 theta 度角:
令
R=10000cosαsinα00-sinαcosα00001 cosβ0-sinβ00100sinβ0cosβ00001cosθsinθ00-sinθcosθ0000100001
故
x''y''z''1=x'y'z'1R![]()
最后,保持 P1 点位置不变的情况下,将线段放大 s 倍,给出相应的变换矩阵:
设P1 点坐标此时为(x1’’,y1’’,z1’’),则
S=100001000010-x1''-y1''-z1''1 s0000s0000s00001100001000010x1''y1''z1''1
故
x'''y'''z'''1=x''y''z''1S![]()
(5) 以空间某线段 P3(x3,y3,z3)P4(x4,y4,z4)为轴旋转 alpha 度角,给出相应的变换矩阵。
1:平移旋转轴端点P3与坐标原点重合,相应变换矩阵为:
T=100001000010-x3-y3-z31
2:将旋转轴P3P4绕x轴逆时针旋转θ 度角使其落在xOz坐标平面上,然后绕y轴逆时针旋转β 度角使其与z轴重合,相应的变换矩阵为:
RXY=10000cosθsinθ00-sinθcosθ00001 cosβ0sinβ00100-sinβ0cosβ00001
3:再绕z轴旋转α度角,相应的变换矩阵为:
RZ=cosαsinα00-sinαcosα0000100001
4:进行步骤2旋转变换的逆变换,相应的变换矩阵为:
RXY-1= cosβ0sinβ00100-sinβ0cosβ00001-110000cosθsinθ00-sinθcosθ00001-1
5:进行步骤1平移变换的逆变换,相应的变换矩阵为:
T'=100001000010x3y3z31
所以,以空间某线段 P3(x3,y3,z3)P4(x4,y4,z4)为轴旋转 alpha 度角,相应的变换矩阵为:
R=TRXYRZRXY-1T'![]()
相关文章:
计算机图形学作业:三维线段的图形变换
1. 将三维空间某线段 P1P2进行如下的操作,请按要求回答问题: (1) 沿 X 轴、Y 轴和 Z 轴分别平移 dx、dy 和 dz 的长度,给出相应的变换矩阵。 变换矩阵为: T100001000010dxdydz1 (2)…...
Linux mren命令教程:批量重命名文件(附实际操作案例和注意事项)
Linux mren命令介绍 mren(全称multiple rename),它是用来对多个文件进行重命名的工具。这个命令在一次操作中可以批量改变多个文件的名称,特别是在需要对大量文件进行重命名时,mren将节省大量的时间和努力。 Linux m…...
LLVM系列(1): 在微软Visual Studio下编译LLVM
参考链接: Getting Started with the LLVM System using Microsoft Visual Studio — LLVM 18.0.0git documentation 1.安装visualstudio,版本需要大于vs2019 本机环境已安装visual studio2022,省略 2安装Makefile,版本需要大…...
分布式系统的三字真经CAP
文章目录 前言C(Consistency 数据一致性)A(Availability 服务可用性)P(Partition Tolerance 分区容错性)CAP理论最后 前言 你好,我是醉墨居士,我一起探索一下分布式系统的三字真经C…...
大模型背景下计算机视觉年终思考小结(一)
1. 引言 在过去的十年里,出现了许多涉及计算机视觉的项目,举例如下: 使用射线图像和其他医学图像领域的医学诊断应用使用卫星图像分析建筑物和土地利用率相关应用各种环境下的目标检测和跟踪,如交通流统计、自然环境垃圾检测估计…...
Modbus协议学习第一篇之基础概念
什么是“协议” 大白话解释:协议是用来正确传递消息数据而设立的一种规则。传递消息的双方(两台计算机)在通信时遵循同一种协议,即可理解彼此传递的消息数据。 Modbus协议模型 Modbus协议模型较为简单,使用一种称为应用…...
gem5学习(12):理解gem5 统计信息和输出——Understanding gem5 statistics and output
目录 一、config.ini 二、config.json 三、stats.txt 官方教程:gem5: Understanding gem5 statistics and output 在运行 gem5 之后,除了仿真脚本打印的仿真信息外,还会在根目录中名为 m5out 的目录中生成三个文件: config.i…...
索引的概述和使用
1、概述 索引占用存储空间,并不是越多越好,太多的索引会影响系统性能 索引分类 聚集索引: 逻辑顺序和物理顺序是一致的(表中行数的位置决定了该行在内存中存储的位置),因此效率优先于非聚集索引ÿ…...
力扣210. 课程表 II
深度优先遍历 思路: 搜索逻辑参见力扣207.课程表需要课程安排的顺序,课程搜索完成时,将其存储起来即可;存储课程的顺序需要注意: 输入依赖中 [A, B]图中表示 B -> A ,表示先 B 后 A&#x…...
[Docker] Mac M1系列芯片上完美运行Docker
docker pull qinchz/dm8-arm64 container_name: dm8ports:- "5236:5236"mem_limit: 1gmemswap_limit: 1gvolumes:- /data/dm8:/home/dmdba/data 数据库实例参数已修改,接近oracle使用习惯 #字符集 utf-8 CHARSET1 #VARCHAR 类型对象的长度以字符为单位 …...
CompletableFuture、ListenableFuture高级用列
CompletableFuture 链式 public static void main(String[] args) throws Exception {CompletableFuture<Integer> thenCompose T1().thenCompose(Compress::T2).thenCompose(Compress::T3);Integer result thenCompose.get();System.out.println(result);}// 假设这些…...
什么是云服务器,阿里云优势如何?
阿里云服务器ECS英文全程Elastic Compute Service,云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,阿里云提供多种云服务器ECS实例规格,如经济型e实例、通用算力型u1、ECS计算型c7、通用型g7、GPU实例等,阿里云百科aliyunbai…...
HCIA-Datacom题库(自己整理分类的)_15_VRP平台多选【9道题】
1.VRP操作平台存在哪些命令行视图? 用户视图 接口视图 协议视图 系统视图 2.以下哪些存储介质是华为路由器常用的存储介质 SDRAM NVRAM Flash Hard Disk SD Card 解析:Hard Disk是硬盘,一般网络设备没有。 3.VRP支持通过哪几种方式对路由器…...
html5基础入门
html5基础语法与标签 前言前端开发零基础入门介绍前端开发行业介绍:大前端时代:前端开发主要技术介绍学习方法IDE简介vscode快捷键: 总结 HTML语法与基础标签互联网基本原理HTTP协议(请求、响应)什么是前端、后端&…...
JVM工作原理与实战(十五):运行时数据区-程序计数器
专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、运行时数据区 二、程序计数器 总结 前言 JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供…...
计算机体系结构----存储系统
本文严禁转载,仅供学习使用。参考资料来自中国科学院大学计算机体系结构课程PPT以及《Digital Design and Computer Architecture》、《超标量处理器设计》、同济大学张晨曦教授资料。如有侵权,联系本人修改。 1.1 引言 1.1.1虚拟和物理内存 程序员看到…...
华为OD机试2024年最新题库(Python)
我是一名软件开发培训机构老师,我的学生已经有上百人通过了华为OD机试,学生们每次考完试,会把题目拿出来一起交流分享。 重要:2024年1月-5月,考的都是OD统一考试(C卷),题库已经整理…...
【打卡】牛客网:BM84 最长公共前缀
自己写的: 题目要求时间复杂度是o(n*len),说明可以遍历所有的字符。 空间复杂度o(1),说明不能用字符串存储公共前缀,所以用下标来记录。 调试过程: 大概花了20min。 我调试前的做法是,在while循环中&…...
我在Vscode学OpenCV 图像处理三(图像梯度--边缘检测【图像梯度、Sobel 算子、 Scharr 算子、 Laplacian 算子、Canny 边缘检测】)
文章目录 一、图像梯度1.1 介绍1.2 涉及函数 二、高频强调滤波器2.1 Sobel 算子2.1.1 Sobel 理论基础2.1.2 Sobel 算子及函数使用(1)对参数取绝对值(2)控制dx,dy方向的求导阶数1. **计算 x 方向边缘(梯度&a…...
2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑤
单元测试 一、任务要求 题目1:根据下列流程图编写程序实现相应处理,执行j10*x-y返回文字“j1:”和计算值,执行j(x-y)*(10⁵%7)返回文字“j2:”和计算值,执行jy*log(x10)返回文字“j3:”和计算值…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
