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

我们知道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 (x0x1)cos2θ+(y0y1)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验证,确实如此

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UTF-8格式大统一:转码高效指南,彻底解决文件编码乱码问题!

文章目录 1 背景说明2 统一的好处3 对增量代码怎么进行统一4 对存量代码怎么进行统一4.1 指定单一文件夹,对里面的 .h .cpp 文件全转换4.2 指定单一文件夹,对里面的.h .cpp文件按需转换4.3 指定多文件夹,对里面的.h .cpp文件全部转换4.4 指定…

用数据,简单点!奇点云2024 StartDT Day数智科技大会,直播见

在充满挑战的2024,企业如何以最小化的资源投入和试错成本,挖掘新的增长机会,实现确定性发展? “简单点”是当前商业环境的应对策略,也是奇点云2024 StartDT Day的核心理念。 5月28日,由奇点云主办的2024 S…

RPA机器人流程自动化如何优化人力资源工作流程

人力资源部门在支持员工和改善整体工作环节方面扮演着至关重要的角色,但是在人资管理的日常工作中,充斥着大量基于规则的重复性任务,例如简历筛选、面试安排、员工数据管理、培训管理、绩效管理等,这些任务通常需要工作人员花费大…

Hive课程文档

基本语法 库操作 Hive和MySQL类似,提供了针对database的操作。 1)创建库: create database demo; 注意,每一个database在HDFS上都会对应一个目录,如果不指定,那么默认是放在/user/hive/warehouse/下。在Hive中&am…

消息回复及时,客户不流失!这个微信自动回复设置快快码住!

你是不是也遇到过由于回复不及时,导致客户流失的情况发生?或是好友申请太多,来不及通过? 别担心,试试个微管理系统,让你实现自动回复,提高回复效率! 1、自动通过好友 当有新的好友…

5.23 Linux中超时检测方式+模拟面试

1.IO多路复用的原理? IO多路复用使得一个或少量线程资源处理多个连接的IO事件的技术。对于要处理的多个阻塞的IO操作,建立集合并存储它们的文件描述符,利用单个阻塞函数去监控集合中文件描述符事件到达的情况,(如果到…

Python 全栈体系【四阶】(五十三)

第五章 深度学习 十二、光学字符识别(OCR) 2. 文字检测技术 2.3 DB(2020) DB全称是Differentiable Binarization(可微分二值化),是近年提出的利用图像分割方法进行文字检测的模型。前文所提…

如何评价 OpenAI 最新发布支持实时语音对话的模型GPT-4o?OpenAI发完GTP-4o,国内大模型行业还有哪些机会?

文章目录 OpenAI发完GTP-4o,国内大模型行业还有哪些机会?详细了解一下OpenAI最新发布的支持实时语音对话的模型GPT-4o国内大模型如何寻找发展机会?想要发展技术必须要创新与追赶或许应用场景拓展也是一种出路产业生态构建 ChatGPT 问世才 17 …

网络安全之重发布与路由策略详解

重发布;import (路由导入) 将不同方式(直连、静态、缺省、其他协议)的路由器重发布进入RIP,OSPF中。 注意:1、华为中不能将缺省路由重发布进入RUO协议(思科也是一样)。…

DrugBank数据库的功能与使用

众所周知的是DrugBank数据库有两个主要辅助角色: ①临床导向的药品知识。DrugBank提供关于药品靶点和药物作用的生物或生理结果的详细、最新、定量分析或分子量的信息。 ②化学导向的药品数据库。提供计算机检索药物、药物“复原”、计算机检索药物结构数据、药物…

二叉树——堆的实现

一.前言 前面我们讲解了二叉树的概念以及二叉树的存储结构:https://blog.csdn.net/yiqingaa/article/details/139224974?spm1001.2014.3001.5502 今天我们主要讲讲二叉树的存储结构,以及堆的实现。 二.正文 1.二叉树的顺序结构及实现 1.1二叉树的顺序…

9. C++通过epoll+fork的方式实现高性能网络服务器

epollfork 实现高性能网络服务器 一般在服务器上,CPU是多核的,上述epoll实现方式只使用了其中的一个核,造成了资源的大量浪费。因此我们可以将epoll和fork结合来实现更高性能的网络服务器。 创建子进程函数–fork( ) 要了解线程我们先来了解…

聊天软件鼻祖 ICQ 将于 6 月 26 日关闭;40 光年外发现一颗潜在宜居的类地行星丨 RTE 开发者日报 Vol.212

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

就业班 第三阶段(ELK) 2401--5.22 day3 filebeat+elk云部署

kafka集群 Windterm同步输入,多台机子可以同时输入同步输入 启动kafka需要启动两个 第一个 [rootkafka1 ~]# cd /usr/local/kafka_2.11-2.0.0/ [rootkafka1 ~]# nohup bin/zookeeper-server-start.sh config/zookeeper.properties &第二个 [rootkafka1 ~]#…

关于0成本部署个人博客

分享一个文章关于零成本搭建个人博客 参考:‘关于部署博客hexoshokagithub的流程以及问题’ - 关于博客部署 | XiaoYang Guo Welcome to Guo Xiaoyangs personal blog 欢迎来到郭晓阳的个人博客 (1330303.github.io) 这个博主讲的流程很全,而且回答也…

Spark项目实训(一)

目录 实验任务一:计算级数 idea步骤分步: 完整代码: linux步骤分布: 实验任务二:统计学生成绩 idea步骤分布: 完整代码: linux步骤分步: 实验任务一:计算级数 请…

消费者相关高效读写ZK作用

消费者分区分配策略 目录概述需求: 设计思路1.消费者分区分配策略2. 消费者offset的存储3. kafka消费者组案例4. kafka高效读写&Zk作用5. Ranger分区再分析 实现思路分析 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show …

[Java EE] 网络编程与通信原理(三):网络编程Socket套接字(TCP协议)

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

Spring MVC+mybatis项目入门:旅游网(四)用户注册——mybatis的配置与使用以及Spring MVC重定向

个人博客:Spring MVCmybatis项目入门:旅游网(四)用户注册2-持久化 | iwtss blog 先看这个! 这是18年的文章,回收站里恢复的,现阶段看基本是没有参考意义的,技术老旧脱离时代(2024年…

网络协议——FTP(简介、搭建FTP服务端)

一、简介 1、什么是FTP? FTP(File Transfer Protocol,文件传输协议) TCP/IP 协议组的协议之一。常用20(数据)、21(命令)端口作为通讯端口。(22为SSH端口)F…