点的旋转变换

news2024/9/27 5:30:16

情形一(active or alibi transformation主动变换)

在这里插入图片描述
在坐标系 x − y x-y xy中,点 p 1 p_1 p1逆时针旋转 α \alpha α后到达点 p 2 p_2 p2
p 1 p_1 p1 x − y x-y xy中的表示与 p 2 p_2 p2 x ′ − y ′ x'-y' xy中的表示一样, x ′ − y ′ x'-y' xy x − y x-y xy旋转逆时针旋转 α \alpha α后的新坐标系。
我们要求 p 2 p_2 p2 x − y x-y xy中的表示?

(以下讨论均在 x − y x-y xy中)
p 1 x = r c o s θ , p 1 y = r s i n θ p_1^x = rcos\theta, p_1^y = rsin\theta p1x=rcosθ,p1y=rsinθ
p 2 x = r c o s ( θ + α ) , p 2 y = r s i n ( θ + α ) p_2^x = rcos(\theta+\alpha), p_2^y = rsin(\theta+\alpha) p2x=rcos(θ+α),p2y=rsin(θ+α)
可以推出
p 2 x = p 1 x c o s α − p 1 y s i n α p_2^x = p_1^x cos\alpha - p_1^y sin\alpha p2x=p1xcosαp1ysinα
p 2 y = p 1 x s i n α + p 1 y c o s α p_2^y = p_1^x sin\alpha + p_1^y cos\alpha p2y=p1xsinα+p1ycosα
用矩阵表示
A = [ c o s α − s i n α s i n α c o s α ] A = \begin{bmatrix} cos\alpha & -sin\alpha \\ sin\alpha & cos\alpha \end{bmatrix} A=[cosαsinαsinαcosα]
p 1 = [ p 1 x , p 1 y ] p_1 = [p_1^x, p_1^y] p1=[p1x,p1y]
p 2 = [ p 2 x , p 2 y ] p_2 = [p_2^x, p_2^y] p2=[p2x,p2y]
p 2 = A p 1 p_2 = Ap_1 p2=Ap1

那么,假如我们已知 p 2 p_2 p2,我们要求 p 1 p_1 p1 x − y x-y xy中的表示?
p 1 = A − 1 p 2 p_1 = A^{-1} p_2 p1=A1p2
A = [ c o s α s i n α − s i n α c o s α ] A = \begin{bmatrix} cos\alpha & sin\alpha \\ -sin\alpha & cos\alpha \end{bmatrix} A=[cosαsinαsinαcosα]

情形二(passive or alias transformation被动变换)

https://en.wikipedia.org/wiki/Rotation_of_axes_in_two_dimensions
坐标不动,坐标系旋转
p p p不动, x ′ − y ′ x'-y' xy x − y x-y xy旋转逆时针旋转 α \alpha α后的新坐标系。
我们已知 p p p x − y x-y xy中的表示 [ p x , p y ] [p^x,p^y] [px,py],要求 p p p x ′ − y ′ x'-y' xy中的表示 [ p x ′ , p y ′ ] [p^{x'},p^{y'}] [px,py]

p x = r c o s θ , p y = r s i n θ p^x = rcos\theta, p^y = rsin\theta px=rcosθ,py=rsinθ
p x ′ = r c o s ( θ − α ) , p y ′ = r s i n ( θ − α ) p^{x'} = rcos(\theta - \alpha), p^{y'} = rsin(\theta - \alpha) px=rcos(θα),py=rsin(θα)
可以推出
p x ′ = p x c o s α + p y s i n α p^{x'} = p^x cos\alpha + p^y sin\alpha px=pxcosα+pysinα
p y ′ = − p x s i n α + p y c o s α p^{y'} = -p^x sin\alpha + p^y cos\alpha py=pxsinα+pycosα
用矩阵表示
A = [ c o s α s i n α − s i n α c o s α ] A = \begin{bmatrix} cos\alpha & sin\alpha \\ -sin\alpha & cos\alpha \end{bmatrix} A=[cosαsinαsinαcosα]
[ p x ′ , p y ′ ] T = A [ p x , p 1 y ] T [p^{x'}, p^{y'}]^T = A [p^x, p_1^y]^T [px,py]T=A[px,p1y]T

那么,假如我们已知 p p p x ′ − y ′ x'-y' xy中的表示 [ p x ′ , p y ′ ] [p^{x'}, p^{y'}] [px,py],要求 p p p x − y x-y xy中的表示 [ p x , p 1 y ] [p^x, p_1^y] [px,p1y]
[ p x , p 1 y ] T = A − 1 [ p x ′ , p y ′ ] T [p^x, p_1^y]^T = A^{-1}[p^{x'}, p^{y'}]^T [px,p1y]T=A1[px,py]T
A − 1 = [ c o s α − s i n α s i n α c o s α ] A^{-1} = \begin{bmatrix} cos\alpha & -sin\alpha \\ sin\alpha & cos\alpha \end{bmatrix} A1=[cosαsinαsinαcosα]

主动变换与被动变换的变换矩阵一样?这说明要想让点 p 1 p_1 p1变换至 p 2 p_2 p2可通过主动绕原点旋转点 p 1 p_1 p1实现,也可以 p 1 p_1 p1不动但旋转坐标系来实现,两者虽然结果一样,但所处的坐标系不一样。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C# Cad2016二次开发HelloWorld(一)

1 新建类库 二 引用 acdbmgd.dll、acmgd.dll、accoremgd.dll 三 HelloWorld代码 public class Class1{/// <summary>/// 程序入口标识/// </summary>[CommandMethod("HelloWorld")]public void HelloWorld(){Document adoc Autodesk.AutoCAD.Applicatio…

将WAP网站封装成App体验的全新策略

一、传统的App封装方式 传统的App封装技术通常依赖于WebView组件&#xff0c;将WAP内容嵌入到一个原生App框架中。这种方法虽然可以快速实现WAP到App的转换&#xff0c;但存在着明显的缺陷&#xff1a;首先&#xff0c;WebView的性能和用户体验都无法与原生组件相提并论&#x…

STM32H5培训(一)总览

文章目录 1. 前言2. STM32H5系列MCU的特点和新功能包括性能提升、新外设和安全功能等3. STM32H5系列型号之间的区别和关键资源对比4. 性能和功能亮点6. 开发生态参考&#xff1a; 1. 前言 本篇主要介绍STM32H5系列MCU的特点和新功能&#xff0c;包括全新的M33内核、250M主频处…

【GNN2】PyG完成图分类任务,新手入门,保姆级教程

上次讲了如何给节点分类&#xff0c;这次我们来看如何用GNN完成图分类任务&#xff0c;也就是Graph-level的任务。 【GNN 1】PyG实现图神经网络&#xff0c;完成节点分类任务&#xff0c;人话、保姆级教程-CSDN博客 图分类就是以图为单位的分类&#xff0c;举个例子&#xff1…

初识 Elasticsearch 应用知识,一文读懂 Elasticsearch 知识文集(1)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

150套简约流行国内外优秀网页模板打包 /个人主页网站html模板 /html+css网页设计源码(分享)

这里把自己收藏的最新150套简约流行国内外优秀网页模板打包分享给大家&#xff0c;如果有用请点赞收藏&#xff0c;无密源码&#xff0c;直接拿来就可以用的。它是htmlcss网页设计源码&#xff0c;html5网页静态模板。 我分了品类&#xff0c;按行业或应用场景&#xff0c;不但…

unity C#深拷贝、浅拷贝、直接赋值区别与经典实例

文章目录 浅拷贝深拷贝浅拷贝和直接赋值有啥区别 在C#中&#xff0c;浅拷贝&#xff08;Shallow Copy&#xff09;和深拷贝&#xff08;Deep Copy&#xff09;是两种不同级别的对象复制方式。它们的区别主要体现在处理引用类型字段时的行为。 浅拷贝 浅拷贝是指复制对象时&…

git修改历史(非最新)提交信息

二、修改最近第二次或更早之前的commit信息 当前有三次提交&#xff0c;从近到远分别为1、2、3 以修改第2次提交为例&#xff08;从最新往前数&#xff09; 1、使用命令git rebase -i HEAD~2 按i进入编辑模式&#xff0c;将对应的pick改为edit&#xff0c;然后ctrlc退出。最…

如何用ChatGPT写教案设计?以“沁园春雪”为例

1. 引言 随着人工智能技术的飞速发展&#xff0c;ChatGPT已成为教育领域的一大创新工具。ChatGPT不仅能够模拟人类对话&#xff0c;还可以帮助设计互动丰富、内容丰富的教案。本文将探索如何利用ChatGPT进行教案教学设计&#xff0c;特别是通过“沁园春雪”这一案例&#xff0…

版本控制系统教程

1.Git的基本介绍 1.1 Git的概念 Git是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目.Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件.Git与常用的版本控制工具CVS&#xff0c;Subversion等不同&#xff…

Vue-17、Vue人员列表过滤(案例)

1、watch实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>列表渲染过滤</title><script type"text/javascript" src"https://cdn.jsdelivr.net/npm/vue2/dist/vue.js&qu…

恭喜:ChatGPT之父与相恋多年的男友结婚,并希望早日生娃。。。

OpenAI CEO Sam Altman与伴侣Oliver Mulherin海边私密婚礼&#xff1a;爱情、事业与人工智能领域的交织 婚礼主持人是奥特曼的兄弟杰克奥尔特曼 壹.媒体流传 在科技界掀起波澜的OpenAI首席执行官萨姆奥尔特曼&#xff08;Sam Altman&#xff09;&#xff0c;近期与他长久以来的…

Linux第27步_在虚拟机中安装“设备树编译工具”

设备树英文名字叫做Device tree&#xff0c;用来描述板子硬件信息的&#xff0c;比如开发板上的 CPU有几个核 、每个CPU核主频是多少&#xff0c;IIC、SPI这些外设的寄存器范围是多少&#xff0c;IIC接口下都挂了哪些设备等等。 设备树文件是一种文本格式的文件&#xff0c;方…

VirtualBox安装linuxmint-21.2虚拟机并配置网络

VirtualBox安装linuxmint-21.2虚拟机并配置网络 适用于在VirtualBox平台上安装linuxmint-21.2虚拟机。 1. 安装准备 1.1 安装平台 Windows 11 1.2. 软件信息 软件名称软件版本安装路径Oracle VM VirtualBoxVirtualBox-7.0.12-159484D:\softwareCentOS7CentOS-7.9.2009E:\…

华为路由器OSPF动态链路路由协议配置

R1配置 interface GigabitEthernet0/0/0ip address 10.1.12.1 255.255.255.252 interface LoopBack0ip address 1.1.1.1 255.255.255.255 ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 1.1.1.1 0.0.0.0 network 10.1.12.0 0.0.0.3 R2配置 interface GigabitEthernet0/0/0i…

精细微调技术在大型预训练模型优化中的应用

目录 前言1 Delta微调简介2 参数微调的有效性2.1 通用知识的激发2.2 高效的优化手段3 Delta微调的类别3.1 增量式微调3.2 指定式微调3.3 重参数化方法 4 统一不同微调方法4.1 整合多种微调方法4.2 动态调整微调策略4.3 超参数搜索和优化 结语 前言 随着大型预训练模型在自然语…

[Beego]1.Beego简介以及beego环境搭建,bee脚手架的使用,创建,运行项目

一.Beego介绍 Beego是一个开源的基于Golang的MVC框架&#xff0c;主要用于Golang Web开发,Beego可以用来快速开发API、Web、后端服务等各种应用。 Golang 的Web开发框架有很多,从 github star 数量来看Gin>Beego>lris>Echo>Revel>Buffalo 目前国内用的比较多的就…

详解Skywalking 服务Overview页面的参数含义(适合小白)

本文针对刚刚接触skywalking的同学&#xff0c;重点讲解服务Overview页面中各个参数的含义&#xff0c;为大家快速上手skywalking会起到帮助作用&#xff01; 最重要的三个指标 Service Apdex&#xff08;数字&#xff09;:当前服务的评分 Successful Rate&#xff08;数字&a…

VS报错:error:LNK2005 _main 已经在 *.obj 中定义

应该是重定义了&#xff0c;但是又解决不了&#xff0c;看似又没有重定义啊&#xff0c;就在一个文件定义了啊&#xff1f;怎么会出现这种情况呢&#xff1f;关键是&#xff0c;编译报错&#xff0c;程序运行不了了。 这里提一下我的前期操作&#xff0c;是因为将一个头文件和…

【MATLAB】 多元变分模态分解MVMD信号分解算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~ 1 基本定义 多元变分模态分解&#xff08;MVMD&#xff09;是一种信号分解方法&#xff0c;可以自适应地实现信号的频域剖分及各分量的有效分离。 MVMD算法的具体步骤如下&#xff1a; 假设原始信号S被分解为K个分量μ…