在复分析中,域着色是一种通过为复平面的每个点指定颜色来可视化复杂函数的技术。

DColor:一个域着色Python模块:

网址

https://github.com/hernanat/dcolor

README

DColor是一个Python3模块,用于使用域着色方案可视化复值函数。

DColor利用了两个著名的Python库:Numpy和Matplotlib。在能够使用DColor之前,您必须使用以下命令安装它们:

$ python3 -m pip install -U numpy
$ python3 -m pip install -U matplotlib

快速启动

在本地环境中准备源文件,并创建DColor对象的实例。例如:

dc = DColor(xmin=-10, xmax=10, ymin=-10, ymax=10, samples=4000)

Lambda表达式用于定义函数并将函数传递给plot()函数。例如:

dc.plot(lambda z : ((z+1-2j)*(z+2+2j)*((z-2)**2))/(z**3))

结果如下图:

complex-plotting

网址

https://github.com/seaplant3/complex-plotting

README

一些python代码,用于使用域着色和等高线可视化复杂函数(从复杂平面到复杂平面)。
作者:Carl Plant (cplant@berkeley.edu)
这显示了一个有趣的3D图形,包括复杂平面的一部分和Rieman(立体图)球体(https://en.wikipedia.org/wiki/Riemann_sphere)。视图可以平移、旋转和缩放,球体或平面可以隐藏在交互式GUI中,但是必须在执行之前修改代码来设置要绘制的函数、分辨率、轮廓的性质等等。有关详细信息,请参阅代码。

设置说明:

如果还没安装python2.7:

安装它!我推荐Miniconda发行版,您将需要Python 2.7版本。然后,您可以运行conda-setup-script.sh来为Mayavi(实现所有这些功能的包)设置所有内容。脚本将打开 Jupyter 笔记本界面,当它完成时,你可以打开complex-plotting-jupyter-notebook.ipynb并按shift+enter运行代码。

如果您关闭 Jupyter并稍后返回,请使用reopen-script.sh从停止的地方继续。

如果您已经安装了python

我建议将complex-plot -main.py的内容剪切粘贴到Jupyter笔记本单元格中,您可以在其中轻松编辑它并按shift+enter运行。您还可以使用python /path/到/complex-plot -main.py从终端运行它。
Mayavi模块可能无法工作或根本无法安装,这取决于您已经安装了哪些其他模块(例如matplotlib)。如果您有这个问题,或者您正在使用Python 3,或者有其他错误,那么conda-setup-script.sh应该会修复它。如果您没有安装conda(大多数人已经安装了),您可以在这里获得它。

如果您关闭Jupyter并稍后返回,请使用reopen-script.sh从停止的地方继续。或者,运行源代码在运行Jupyter笔记本或python之前激活complexPlottingEnv加载Mayavi的设置。

如果我的BASH脚本不能工作(例如,因为你在Windows上),或发生其他问题:

尝试这些故障排除步骤。终端命令适用于Linux/Mac,但如果它们不能在Windows上运行,一个快速的谷歌应该会显示正确的命令。这将构建一个特殊的python环境,其中只包含这段代码所需的包,以防止Mayavi的依赖关系与其他任何东西(如matplotlib)发生冲突。

  1. 确保安装了Python 2.7和conda。您可以使用Miniconda或Anaconda。您可以通过运行conda -version来检查它是否正常工作。
  2. 通过运行conda create -n myEnvName python=2.7创建一个干净的新环境。您可以运行conda env list来查看列表中的新环境,或者检查conda-setup-script.sh是否成功地生成了一个名为complexPlottingEnv的环境。
  3. 通过运行source activate myEnvName切换到这个环境。(myEnvName)应该出现在您的终端提示符中。
  4. 在这个环境中安装mayavi和jupyter包:运行conda Install mayavi jupyter。
  5. 运行代码!运行jupyter笔记本,并导航到 complex-plotting-jupyter-notebook.ipynb的位置。将代码剪切粘贴到记事本单元中,或者运行python /path/到/where/you/ downloads /complex-plot -main.py。只要确保先运行source activate myEnvName,如果它还没有显示在终端提示符中。
    注意,当计算时,它可能需要大约15秒的时间来启动,并可能会抛出一些警告,如“溢出”或“无效值”,这是正常的。

在域着色图片上生成网格

参考:https://pdfs.semanticscholar.org/1b31/16583a2638f896d8e1dd5813cd97b3c7e2bd.pdf

Complex functions that are differentiable(so called holomorphic functions) and have
nowhere vanishing derivative are of particular geometric interest: they are conformal,
i.e. they preserve angles.

复函数是可微的(称为全纯函数),没有哪一种消去的导数具有特殊的几何意义:它们是保角的,
也就是说,它们保持角度不变。

To illustrate this phenomenom, it is helpful to implement grid-like color schemes such as rectangular grids or polar grids. We explain a polar grid consisting of concentric circles as
contour lines around the origin and n rays starting at the origin going through the nth roots of unity exp(2kπi/n), as shown in Figure 6.

为了说明这一现象,可以使用网格状的配色方案,如矩形网格或极坐标网格。我们把由同心圆组成的极网格解释为等值线的起源和n射线从原点开始通过统一的n根exp (2 kπi / n),如图6所示。

图6:一种极网格配色方案,其红色等高线模量为1(左上),适用于复数sin(右上),即Joukowski函数图3(左下角)和函数fm-图4(右下角)。

有两件事情要去做:

第一:计算 a r g z arg z argz的距离 d θ d_\theta dθ​(作为0-1之间值)最接近分数 k n \frac{k}{n} nk​对 k = 0 , 1 , . . . , n − 1 k=0,1,...,n-1 k=0,1,...,n−1;
第二:计算模长 ∣ z ∣ |z| ∣z∣的距离 d c d_c dc​最接近的倍数 l ⋅ D , l ∈ N l·D,l\in N l⋅D,l∈N,其中D是在任意两个连续的同心圆的距离。依赖于 d θ d_\theta dθ​, d c d_c dc​的距离,如果距离太大,返回白色,如果距离小于某些用户指定的阈值,则为灰色。由于实现是直接的,所以我们不给出代码清单。矩形网格也可以用类似的方法创建,但是使用下一节中讨论的倾斜更方便。

Doman coloring(域着色)相关推荐

  1. DirectX11 With Windows SDK--17 利用几何着色器实现公告板效果

    DirectX11 With Windows SDK--17 利用几何着色器实现公告板效果 原文:DirectX11 With Windows SDK--17 利用几何着色器实现公告板效果 前言 上一 ...

  2. 加入域时出现以下错误 登陆失败 该目标账户名称不正确_Windows 10 20H1新加入的这些功能,你应该用得上...

    截止2020年4月,估计有70.98%的Windows设备在运行Windows 10,如此庞大的用户数,使得微软越来越注重Windows的用户体验,本次即将到来的更新带来了如下新功能(特性). 切入正 ...

  3. D3D管线以及着色器工作原理-画一个三角形

    D3D11的10个渲染管线阶段: 1.输入装配阶段(IA:Input Assembler Stage) 2.顶点着色阶段(VS:Vertex Shader Stage) 3.外壳着色阶段(HS:Hul ...

  4. 《Real-Time Rendering 4th Edition》读书笔记--简单粗糙翻译 第五章 着色基础 Shading Basics

    写在前面的话:因为英语不好,所以看得慢,所以还不如索性按自己的理解简单粗糙翻译一遍,就当是自己的读书笔记了.不对之处甚多,以后理解深刻了,英语好了再回来修改.相信花在本书上的时间和精力是值得的. -- ...

  5. 《Real-Time Rendering 4th Edition》全文翻译 - 第5章 着色基础(中)5.3 ~ 5.4

    这两节终于翻译完毕,不得不说原文篇幅是真的长,花了不少时间. 另外,以后引用的具体文章标题不会再列出来,一是为了节省时间,二是感觉列出来会过于冗余.所以如果想看具体引用文章标题的话,请在原书里手动搜索 ...

  6. DirectX 12 曲面细分着色器笔记

    曲面细分着色器 1. 背景 2. 曲面细分工作机制 2.1 Hull Shader(外壳着色器) 2.2 Tessellator(曲面细分器) 2.3 Domain Shader(域细分器) 3. 编 ...

  7. android中有关的计算机网络基础

    一.网络协议 计算机网络是什么? 随着计算机技术发展,计算机的体积和价格都在下降,之前计算机多用于研究机构,现阶段逐步进入一般的公司用于办公.原来计算机之间传输数据需要通过软盘等第三方存储介质进行转存 ...

  8. [转载]常用数学专业名词的英语

    目录 前言 数学分支的英文: 命题的英文: 数学中常见数词的英语: 点的英文: 线的英文: 面的英文: 角的英文: 距离的英文: 多边形的英文: 三角形的英文: 四边形的英文: 圆的英文: 多面体的英 ...

  9. c++生成nurbs曲面文件_使用曲面细分丰富原始多边形

    曲面细分 光栅化图形渲染管线下,还有一部分需要我们进行详细的说明.曲面细分不单可以细分图元(简单的Flat Tessellation),还可以生成曲面(PN-Triangles),这是流水线中其它阶段 ...

  10. arXiv | 图表示方法驱动大分子计算研究

    今天给大家介绍的是麻省理工学院(MIT)材料科学与工程系研究人员近期发表在arXiv上的一篇有关大分子表示的研究.作者提出一种大分子的图表示方法,为大分子的表示.比较和学习提供了一个通用框架:并实现了 ...

最新文章

  1. 三巨头共聚AAA:ICapsule没有错,LeCun看好自监督,Bengio谈注意力
  2. iOS enum 定义与使用
  3. 你知道钓鱼网站的形成步骤吗?一次网络钓鱼演练带你了解(增强安全意识)
  4. 信息安全系统设计基础第一周学习总结
  5. linux安装pytorch教程,centos下通过conda安装pytorch
  6. 64. Minimum Path Sum 最小路径和
  7. python高级编程知识点_(转)python 高级编程技巧学习笔记
  8. HDU 4990 Ordered Subsequence --数据结构优化DP
  9. Java Swing/AWT API速查手册
  10. w我的世界pe开服器php7,我的世界手机自主开启PE服务器教程
  11. 转换字符串的字符成单个字符并用逗号分隔
  12. 问题 A: 【一本通提高组合数学】Bullcow 牡牛和牝牛
  13. (5)数据结构-栈顺序存储
  14. 医院所用到的信息系统的缩写、定义,持续更新
  15. 犀牛插件学习——T-Splines
  16. 用php实现基本功能,php实现文件管理与基础功能操作的方法
  17. classpath根目录
  18. 第20件事 风险分析
  19. 打开图片或者视频显示“文件系统错误-2147416359”
  20. 医患诚信系统——软件项目的风险

热门文章

  1. 13 使用Latch(门闩)代替wait notify来进行通知
  2. HR首选!牛客荣获“2022智享会招聘与任用供应商价值大奖”,校招不用愁!
  3. PS 制作.ICO 图标(VB6.0)
  4. 课工场:携手中国软件杯走进高校 深化产教融合校企合作之路
  5. Cocos Creator人物血条实现
  6. 为何3Dmax渲染的图偏暗?跟伽马有影响吗?可以后期修改伽马吗?
  7. 保险公司哪家好?选大公司还是小公司
  8. C语言:编写函数判断一个整数能否同时被3和5整除,若能则返回值为1,否则为0。调用该函数求出15~300之间能同时被3和5整除的数的个数。
  9. js新旧数据比较器-ComparatorsUtils
  10. 技术文章 | iOS 防 DNS 污染方案调研--- HTTPS(非SNI) 业务场景