【莫比乌斯变换-03】python实现圆对圆的变换

在这里插入图片描述

文章目录

  • 一、说明
  • 二、python实现复平面的莫比乌斯变换
  • 三、线的变换
  • 四、画笑脸

一、说明

我们在前面的文章中,叙述了莫比乌斯变换的复数分析,以及种种几何属性,本篇中叙述如何程序地实现:复平面上的圆在莫比乌斯变换下的图像是另一个圆。为了使这一点始终成立,您必须将一条线作为圆的特例,如果您愿意,可以是无限半径的圆。

二、python实现复平面的莫比乌斯变换

这篇文章将用 Python 代码和图表来说明这些陈述。首先,一些在复平面上绘制圆和其他曲线的代码。

 from numpy import exp, pi, linspace
    import matplotlib.pyplot as plt
    θ = linspace(0, 2*pi, 200)
    def circle(radius, center):
        return center + radius*exp(1j*θ)
    def plot_curves(curves):
        for c in curves:
            plt.plot(c.real, c.imag)
        plt.show()
        plt.close()

接下来,编写莫比乌斯变换的代码,以及我们将在绘图中使用的特定莫比乌斯变换。

def mobius(z, a, b, c, d):
        return (a*z + b)/(c*z + d)

def m(curve):
        return mobius(curve, 1, 2, 3, 4)

现在我们将绘制三个圆及其在莫比乌斯变换下的图像

m ( z ) = ( z + 2 ) / ( 3 z + 4 ) m ( z ) = ( z + 2)/(3 z + 4) m(z)=(z+2)/(3z+4)

使用以下代码。

    circles = [circle(1, 0), circle(2, 0), circle(2, 2)]
    plot_curves(circles)
    plot_curves([m(c) for c in circles])

这会产生
在这里插入图片描述

在这里插入图片描述

请注意,第一个蓝色圆圈最初是最小的圆圈,并包含在第二个橙色圆圈内。但在图像中,蓝色圆圈变得最大,并且不再位于橙色圆圈内。这是因为我们的莫比乌斯变换在 -4/3 处有一个奇点,并且围绕该点事情会发生翻天覆地的变化。

三、线的变换

接下来我们将看一个线与线之间映射的示例。

   line = linspace(-100, 100, 600)
   curves = [line, 1j*line - 4/3]
   plot_curves(curves)
   plot_curves([m(c) for c in curves])

这会产生
在这里插入图片描述

在这里插入图片描述

这些线被映射到线,因为它们都穿过 -4/3 处的奇点。蓝色的实轴映射到其自身。 -4/3 + iy行被移至实部 1/3。

最后,让我们看一下映射到圆的直线。由于莫比乌斯变换的逆变换是另一种莫比乌斯变换,因此该示例还表明圆可以映射到直线。

    lines = [1j*line - 4, 1j*line + 4, line - 4j, line + 4j]
    plot_curves(lines)
    plot_curves([m(c) for c in lines])

这会产生
在这里插入图片描述

在这里插入图片描述
请注意,圆圈并不是很接近。那是因为我的线只从 -100 到 100,而不是 -∞ 到 ∞。圆圈中的间隙为 1/3,因为当z趋向 ±无穷大时,这是我们变换 ( z + 2)/(3 z + 4)的极限。

四、画笑脸

莫比乌斯变换的很重要指标是奇点(与不动点是两个概念)位置。为了进一步说明问题,我想看一下笑脸以及在不同的莫比乌斯变换下它会发生什么。
在这里插入图片描述
这是绘制原始脸部的代码。

  dash = linspace(0.60, 0.90, 20)
    smile = 0.3*exp(1j*2*pi*dash) - 0.2j
    left_eye  = circle(0.1, -0.4+.2j)
    right_eye = circle(0.1,  0.4+.2j)
    face = [circle(1, 0), left_eye, smile, right_eye]

接下来,让我们用参数 (1, 0, 1, 3) 对该面进行莫比乌斯变换。奇点位于 -3 处,位于面外且距离相当远。

求奇点方法:分母等于0, f ( z ) = z z + 3 f(z)=\frac{z}{z+3} f(z)=z+3z z = − 3 z=-3 z=3

在这里插入图片描述
接下来我们将使用参数 (1, 0, 1, -1+1j),其奇异性为 1 – i,更接近脸部,因此失真更多。

求奇点方法 f ( z ) = z z + ( − 1 + 1 j ) = z f(z)=\frac{z}{z+(-1+1j)}=z f(z)=z+1+1jz=z z = 1 − j z= 1-j z=1j
在这里插入图片描述

现在我们使用参数 (1, 0, 3, 1),将奇点置于面内的 -1/3 处。
在这里插入图片描述
最后,我们查看参数 (1, 0, 1, 0.4-0.2j),将奇点放在左眼内。
在这里插入图片描述
结论:奇点在不在单位圆内部,是图片保持信息的关键因素。
下一篇文章将解释如何选择莫比乌斯变换的参数以使点到达您想要的位置。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【ONE·基础算法 || 回溯和剪枝(暴搜/深搜)】

总言 主要内容:编程题举例,熟悉理解回溯剪枝类题型(如何画决策树,如何使用深搜进行递归,如何运用剪枝,如何在一维数组/二维数组中使用)。 文章目录 总言1、回溯和剪枝2、全排列(med…

【机器学习】BK- SDM与LCM的融合策略在文本到图像生成中的应用

突破边缘设备限制:BK-SDM与LCM的融合策略在文本到图像生成中的应用 一、引言二、稳定扩散算法的挑战与现状三、BK-SDM与LCM的融合策略利用高质量图像-文本对进行训练为LCM量身定制高级蒸馏过程 四、结论与展望 一、引言 随着人工智能技术的飞速发展,文本…

数据结构(十)----图

目录 一.图的概念 1.图的定义 2.图的类别 3.图的性质 4.几种特殊形态的图 二.图的存储结构 1.邻接矩阵(顺序存储) 2.邻接表(顺序链式存储) 3.十字链表 4.邻接多重表 四.图的遍历 1.广度优先遍历(BFS&#…

Mysql复习笔记: 基础概念(待补充)

一. 基础概念 通用概念: 网络连接必须得分配给一个线程去进行处理,由一个线程来监听请求以及读取请求数据,比如从网络连接中读取和解析出来一条我们的系统发送过去的SQL语句 在数据库中,哪怕执行一条SQL语句,其实也可以是一个独立…

Python | Leetcode Python题解之第59题螺旋矩阵II

题目&#xff1a; 题解&#xff1a; class Solution:def generateMatrix(self, n: int) -> List[List[int]]:matrix [[0] * n for _ in range(n)]num 1left, right, top, bottom 0, n - 1, 0, n - 1while left < right and top < bottom:for col in range(left, r…

pandas学习笔记11

DataFrame结构 DataFrame 一个表格型的数据结构&#xff0c;既有行标签&#xff08;index&#xff09;&#xff0c;又有列标签&#xff08;columns&#xff09;&#xff0c;它也被称异构数据表&#xff0c;所谓异构&#xff0c;指的是表格中每列的数据类型可以不同&#xff0c;…

python中type,object,class 三者关系

type,object,class 三者关系 在python中&#xff0c;所有类的创建关系遵循&#xff1a; type -> int -> 1 type -> class -> obj例如&#xff1a; a 1 b "abc" print(type(1)) # <class int> 返回对象的类型 print(type(int)) …

力扣打卡第二天

206. 反转链表 class Solution { public:ListNode* reverseList(ListNode* head) {// //迭代法// ListNode *pre nullptr;// ListNode *curr head;// while(curr){// ListNode *next curr -> next;// curr -> next pre;// pre curr;// curr next;/…

Unity UGUI Image 点击事件忽略空白像素区域

我们会遇到图片不是方形的不规则图片。这个时候我们希望只有点击到图像内容本身才算点击&#xff0c;点击空白区域则不算点击。而UGUI对图片的处理是整个图片都会算作点击区域&#xff0c;这样不能满足于我们的使用需求了。 首先我们需要把图片本身的Read/Write 选项打开 然后…

质因数分解(cpp实现)--一种快速求得一个数有多少个因子的黑魔法

前言 最近机试没少吃不会质因数分解的亏&#xff0c;用传统的求得因子个数只能过一点点…(ex, 20%) 质因数分解后&#xff0c;可以将因子问题转化为 集合的组合问题&#xff0c;因此会很快&#xff0c;目测是 l o g n log n logn (n是该整数的值)。 传统解法 假设输入整数的…

基于OpenCv的图像特征点检测

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

从0开始linux(1)——文件操作

欢迎来到博主的专栏——从0开始linux 博主ID&#xff1a;代码小豪 博主使用的linux发行版是&#xff1a;CentOS 7.6 不同版本下的操作可能存在差异 文章目录 命令文件操作命令文件树和文件路径文件树绝对路径相对路径 文件属性tree指令删除文件复制文件 大家还记得在小学第一次…

C语言-链表实现贪吃蛇控制台游戏

使用C语言和链表实现贪吃蛇游戏 一、引言 贪吃蛇游戏是一个经典的游戏&#xff0c;它的玩法简单而富有挑战性。在这个博客中&#xff0c;我将分享如何使用C语言和链表数据结构来自主实现贪吃蛇游戏。我会详细介绍游戏的设计思路、编码过程、遇到的问题及解决方案&#xff0c;…

将要上市的自动驾驶新书《自动驾驶系统开发》中摘录各章片段 1

以下摘录一些章节片段&#xff1a; 1. 概论 自动驾驶系统的认知中有一些模糊的地方&#xff0c;比如自动驾驶系统如何定义的问题&#xff0c;自动驾驶的研发为什么会有那么多的子模块&#xff0c;怎么才算自动驾驶落地等等。本章想先给读者一个概括介绍&#xff0c;了解自动驾…

Rust 生命周期浅谈

1. 简述 Rust 中的每一个引用都有其 生命周期&#xff08;lifetime&#xff09;&#xff0c;也就是引用保持有效的作用域。大部分时候生命周期是隐含并可以推断的&#xff0c;正如大部分时候类型也是可以推断的一样。类似于当因为有多种可能类型的时候必须注明类型&#xff0c;…

JAVA语言开发的智慧城管系统源码:技术架构Vue+后端框架Spring boot+数据库MySQL

通过综合应用计算机技术、网络技术、现代通信技术等多种信息技术&#xff0c;充分融合RS遥感技术、GPS全球定位技术、GIS地理信息系统&#xff0c;开始建设一个动态可视的、实时更新的、精细量化的城市管理系统。智慧城管将采用云平台架构方式进行建设&#xff0c;基于现有数字…

【idea-sprongboot项目】SSH连接云服务器进行远程开发

继上一篇博客【阿里云服务器】ubuntu 22.04.1安装docker以及部署java环境-CSDN博客 目录 五、远程开发方式 1&#xff09;SSH进行远程开发 步骤 配置文件同步 window电脑远程操控 正式通过window电脑远程操控 运行在linux服务器上的远程程序 调试在linux服务器上的远程程…

恶补《操作系统》5_2——王道学习笔记

5.2_1 I-O核心子系统 1、用户层软件 假脱机系统 2、设备独立性软件&#xff08;设备无关性软件&#xff09; IO调度、设备保护、设备分配与回收、缓冲区管理 3、设备驱动程序&#xff08;比如打印机驱动&#xff09; 4、中断处理程序 5、硬件 5.2_2 假脱机技术&#xff…

PHP医疗不良事件上报系统源码 AEMS开发工具vscode+ laravel8 医院安全(不良)事件报告系统源码 可提供演示

PHP医疗不良事件上报系统源码 AEMS开发工具vscode laravel8 医院安全&#xff08;不良&#xff09;事件报告系统源码 可提供演示 医院安全不良事件报告系统&#xff08;AEMS&#xff09;&#xff1b;分为外部报告系统和内部报告系统两类。内部报告系统主要以个人为报告单位&…

智慧文旅开启沉浸式文化体验,科技让旅行更生动:借助智慧技术,打造沉浸式文化体验场景,让旅行者在旅行中深度感受文化的魅力

一、引言 随着科技的飞速发展&#xff0c;传统旅游行业正经历着前所未有的变革。智慧文旅&#xff0c;作为一种新兴的旅游模式&#xff0c;正以其独特的魅力&#xff0c;吸引着越来越多的旅行者。智慧文旅不仅改变了人们的旅行方式&#xff0c;更在深度上丰富了人们的文化体验…