首页 > 其他分享 >推导2维镜像变换(Reflection Transform)的公式

推导2维镜像变换(Reflection Transform)的公式

时间:2024-05-27 18:32:10浏览次数:27  
标签:cos right frac Reflection Transform 镜像 theta sin left

我们知道2维的旋转变换公式为
Q = ( cos ⁡ ( θ ) sin ⁡ ( θ ) − sin ⁡ ( θ ) cos ⁡ ( θ ) ) Q=\left( \begin{matrix} \cos \left( \theta \right)& \sin \left( \theta \right)\\ -\sin \left( \theta \right)& \cos \left( \theta \right)\\ \end{matrix} \right) Q=(cos(θ)−sin(θ)​sin(θ)cos(θ)​)
如果 y = Q T x y=Q^{T}x y=QTx,那么逆时针旋转x就得到了y。旋转矩阵可以看我的其他博客3维旋转的3种表示方法之间的关系,还有从几何与代数的角度推算坐标旋转变换矩阵(以2维为例)

而镜像变换,是点x以某个向量为轴,得到其镜像y。
Q = ( cos ⁡ ( θ ) sin ⁡ ( θ ) sin ⁡ ( θ ) − cos ⁡ ( θ ) ) Q=\left( \begin{matrix} \cos \left( \theta \right)& \sin \left( \theta \right)\\ \sin \left( \theta \right)& -\cos \left( \theta \right)\\ \end{matrix} \right) Q=(cos(θ)sin(θ)​sin(θ)−cos(θ)​)
该镜像变换以向量 ( c o s ( θ / 2 ) , s i n ( θ / 2 ) ) (cos(\theta/2),sin(\theta/2)) (cos(θ/2),sin(θ/2))为轴

镜像变换是对称矩阵,因此 y = Q T x = Q x y=Q^{T}x=Qx y=QTx=Qx

该镜像变换矩阵是怎么来的呢,下面进行推导。假设需要镜像的点为A ( x 0 , y 0 ) (x_0,y_0) (x0​,y0​),镜像后得到的点为B ( x 1 , y 1 ) (x_1,y_1) (x1​,y1​)
那么就有下面两个约数(1) A B → \overrightarrow{AB} AB 垂直与向量,(2)A到向量的距离与B到向量的距离相等,并且方向相反。
根据条件(1)
( x 0 − x 1 ) cos ⁡ θ 2 + ( y 0 − y 1 ) sin ⁡ θ 2 = 0 \left( x_0-x_1 \right) \cos \frac{\theta}{2}+\left( y_0-y_1 \right) \sin \frac{\theta}{2}=0 (x0​−x1​)cos2θ​+(y0​−y1​)sin2θ​=0

向量 ( c o s ( θ / 2 ) , s i n ( θ / 2 ) ) (cos(\theta/2),sin(\theta/2)) (cos(θ/2),sin(θ/2))可以看做一条直线,该直线为
− sin ⁡ θ 2 x + cos ⁡ θ 2 y = 0 -\sin \frac{\theta}{2}x+\cos \frac{\theta}{2}y=0 −sin2θ​x+cos2θ​y=0
A到该直线距离为
f 1 = − sin ⁡ θ 2 x 0 + cos ⁡ θ 2 y 0 f1=-\sin \frac{\theta}{2}x_0+\cos \frac{\theta}{2}y_0 f1=−sin2θ​x0​+cos2θ​y0​
B到该直线距离为
f 2 = − sin ⁡ θ 2 x 1 + cos ⁡ θ 2 y 1 f2=-\sin \frac{\theta}{2}x_1+\cos \frac{\theta}{2}y_1 f2=−sin2θ​x1​+cos2θ​y1​
条件(2)为
f 1 = − f 2 f1=-f2 f1=−f2
根据解这两个方程,就可以得到上面的镜像变换矩阵Q,我用mathematica验证,确实如此

在这里插入图片描述

标签:cos,right,frac,Reflection,Transform,镜像,theta,sin,left
From: https://blog.csdn.net/WhoisPo/article/details/139244625

相关文章

  • 构建按需开启扩展的php Docker 镜像
    项目中需要使用到mssql,因此php需要开启sqlsrv,pdo_sqlsrv的扩展,并且需要安装ODBC驱动。搜索了一圈,整理出成功方案如下:#PHP容器配置FROMsuyar/php:8.2-integration#构建生产/开发测试环境的镜像ARGENVIRONMENT#替换系统镜像源,修改composer镜像源RUNsed-i's@/deb......
  • npm下载依赖太慢?镜像源切换与设置!
    目录项目背景​编辑 接下来讲讲镜像源切换的两种设置模式]一、命令行模式1、查看当前镜像源2、删除镜像3、小结二、文件配置模式  常用的镜像项目背景依赖安装中断或响应特别慢。可以看到当前所用的镜像是https://registry.npmjs.org。 切换淘宝镜像之后......
  • SUPRA:无须额外训练,将Transformer变为高效RNN,推理速度倍增
    Transformers已经确立了自己作为首要模型架构的地位,特别是因为它们在各种任务中的出色表现。但是Transformers的内存密集型性质和随着词元数量的指数扩展推理成本带来了重大挑战。为了解决这些问题,论文“LinearizingLargeLanguageModels”引入了一种创新的方法,称为UPtraining......
  • UVA11922 Permutation Transformer 题解
    题目传送门前置知识无旋treap解法与luoguP3391【模板】文艺平衡树不同的是本题翻转后需要放到整个序列的末尾。由于需要翻转后放到末尾,故无旋Treap在维护文艺平衡树的过程中合并时跳着合并即可。代码#include<bits/stdc++.h>usingnamespacestd;#definelllong......
  • docker删除下载的镜像失败(镜像存在但是系统反馈找不到) & 虚悬镜像
    一般镜像删除办法:dockerrm[容器名称或ID]// 删除运行中的容器dockerrm-f[容器名称或ID]但是需要删除却找不到,这个叫虚悬镜像,是因为TAG发生某种错误丢失造成的//单个删除办法:dockerrmi-f [容器名称或ID]//查找本地全部虚悬镜像dockerimagels-fdanglin......
  • 论文笔记:Inf-DiT: Upsampling Any-Resolution Image with Memory-Efficient Diffusion
    论文链接:[2405.04312]Inf-DiT:UpsamplingAny-ResolutionImagewithMemory-EfficientDiffusionTransformer(arxiv.org)论文代码:THUDM/Inf-DiT:OfficialimplementationofInf-DiT:UpsamplingAny-ResolutionImagewithMemory-EfficientDiffusionTransformer(gi......
  • 通过qemu-img工具转换镜像格式
    应用场景华为云支持导入vhd、vmdk、qcow2、raw、vhdx、qcow、vdi、qed、zvhd或zvhd2格式镜像文件。其他镜像文件,需要转换格式后再导入。本节操作指导您使用开源qemu-img工具转换镜像格式。方案构架本节提供本地为Windows操作系统和Linux操作系统的转换镜像格式的操作方法。 ......
  • Keras深度学习框架第二十五讲:使用KerasNLP预训练Transformer模型
    1、KerasNPL预训练Transformer模型概念使用KerasNLP来预训练一个Transformer模型涉及多个步骤。由于Keras本身并不直接提供NLP的预训练模型或工具集,我们通常需要结合像TensorFlowHub、HuggingFace的Transformers库或自定义的Keras层来实现。以下是一个简化的步骤概述,用......
  • 大模型最新黑书:大模型应用解决方案: 基于GPT-3、ChatGPT、GPT-4等Transformer架构的自
    今天给大家推荐一本丹尼斯·罗斯曼(DenisRothman)编写的关于大语言模型(LLM)权威教程<<大模型应用解决方案>基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理>!Google工程总监AntonioGulli作序,这含金量不用多说,在这里给大家强烈推荐一下这本黑书,下面直接开始介绍!......
  • JDK8基础镜像包
    运行命令dockerbuild-tregistry.cn-shanghai.aliyuncs.com/bookc/openjdk-8-alpine.dockerfileFROMopenjdk:8-jdk-alpine#指定阿里镜象RUNsed-i's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g'/etc/apk/repositories#设置时区RUNln-sf/usr/share/zonei......