C++中点关于直线的反射(Reflection of a point about a line in C++)

ops/2024/11/15 8:41:53/

示例图 

        让我们首先考虑一个一般情况,其中线只是 X 轴。我们现在可以肯定地说,一个点的共轭是该点关于 X 轴的反射。

        现在,使用坐标轴的平移和旋转方法,我们将找出一个点关于一般线的反射。 

        平移的概念在上一篇文章中已经描述过。这里我们描述旋转的概念。 

什么是旋转? 

        在欧几里得几何中,二维轴的旋转是从 xy-笛卡尔坐标系到 x'y'-笛卡尔坐标系的映射,其中原点保持固定,x' 和 y' 轴是通过将 x 和 y 轴旋转一个角度 ? 获得的。 

如何进行旋转? 

        旋转可以解释为将坐标系的每个点乘以(逆时针旋转)或除以(顺时针旋转)一个常数矢量。 

        请注意,如果我们想将一个点旋转 ?绕原点逆时针旋转,我们将其乘以极坐标 (1.0, ?),如集合1中所述。类似地,我们除以极坐标 (1.0, ?) 以将点沿顺时针方向旋转 ?。 
旋转后,执行所需的计算,并通过分别将每个点除以或乘以常数向量来消除旋转。
因此,我们必须将点 P 反射到由点 A 和 B 指定的直线上,记为 AB。因为,我们知道一个点的共轭是该点绕 X 轴的反射。为了能够利用这一事实,我们将首先执行平移(使 A 成为新系统中的原点),然后旋转坐标轴,使该线成为新坐标系中的 X 轴。 

        现在我们可以简单地应用绕 X 轴反射的公式,然后消除旋转和平移的影响以获得最终结果。

这些步骤可以描述如下: 

1.平移(将原点移至 A 点):从所有点中减去 A 点。

2.旋转(将 B t A t移至X 轴):将所有点除以 B t(除法意味着按顺时针方向旋转,这是这里的要求,以带入 X 轴)。

3.P r关于B r A r(也就是X轴)的反射:只需取该点的共轭即可。  

4. 从旋转恢复:将所有点乘以Bt。  

5.从平移恢复:将 A 添加到所有点。P 
反射 = conj(P r )*B t + A

因此, 

return conj(P r )*B t + A 
,where B t = B – A 
P t = P – A 
P r = P t /B t


http://www.ppmy.cn/ops/105001.html

相关文章

苹果笔记本电脑能不能玩游戏?苹果电脑玩游戏咋样?

过去Mac玩不了游戏最大的问题,就是图形API自成一体,苹果既不支持微软的DirectX,同时为了推广自家的Metal图形API,又对OpenGL和Vulkan两大主流的通用API敬而远之。游戏生态、硬件瓶颈让苹果电脑不适合玩游戏。 不过说到底&#xf…

C# 什么是属性

1.属性Aproperty)是一种用于访问对象或类型的特征的成员,特征反映了状态 2.属性是字段的自然扩展 从命名上看,field更偏向于实例对象在内存中的布局,property更偏向于反映现实世界对象的特征对外:暴露数据,数据可以是存储在字段里的,也可以是动态计算出来的对内:保护字段不被…

USB抓包资料

husbound抓包数据资料 手动分析使用BUSHOUND抓取同步传输的URB - USB中文网 关键数据:因为bus特性,URB数据会在数据之后 BUSHOUND抓包stall pid的USTS c0000004错误 - USB中文网

C++set与map容器

目录 一、关联式容器和序列式容器 二、树形结构的关联式容器 三、set容器 1.set容器的定义 2.set的构造 3.set的迭代器 4.set的容量 5.set的修改操作(set容器不支持修改数据) 6.set的一些其他常用接口 (1)find函数 &…

计算机网络 数据链路层1

数据链路层: 服务:将来自网络层的数据传输到相邻节点的网络层 作用:加强物理层传输原始比特流的功能 封装成帧---组帧:将来自网络层的数据在首尾添加特定信息(帧定界:帧的起始,结束) 差错控制 CRC循环冗余…

项目:基于TCP的文件传输系统

项目介绍: 模拟FTP原理:客户端连接服务器后,向服务器发送一个文件。文件名可以通过参数指定,服务器端接收客户端传来的文件(文件名随意),如果文件不存在自动创建文件,如果文件存在,…

数据挖掘之分类算法

分类算法是数据挖掘中常用的一类算法,其主要任务是根据已知的训练数据(即带有标签的数据)构建模型,然后利用该模型对新的数据进行分类。分类算法广泛应用于金融、医疗、市场营销等领域,用于预测、决策支持等任务。以下…

PneumoLLM: 利用大语言模型的力量进行尘肺病诊断| 文献速递-大模型与多模态诊断阿尔茨海默症与帕金森疾病应用

Title 题目 PneumoLLM: Harnessing the power of large language model for pneumoconiosis diagnosis PneumoLLM: 利用大语言模型的力量进行尘肺病诊断 01 文献速递介绍 在计算机辅助诊断领域,对医学数据的处理和分析能力至关重要。它有助于潜在疾病的诊断和未…