复杂形态钢结构设计培训班

首页 Dino结构笔记-公众号 【DINO爱编程】几何_图形的反演/映射算法

【DINO爱编程】几何_图形的反演/映射算法

【DINO爱编程】几何_图形的反演/映射算法

这期又分享一下几何图形的一起有趣而且很美的算法,图形的反演算法,这个算法我是偶然在书上找到了。最近在研究三维的编程理论(用于编出更好的结构分析程序的界面),所以我去图书馆借点数学书来补一下课,香港的中央图书馆有很多很好的数学教科书,于是我去图书馆看了一天的书,最终给我找到一本很不错的书《Math and Art, an intro to visual math》.


这本书列举了很多美丽的数学几何图形的算法,书上有一个基于初中数学就能完成的数学算法叫做(inversion),我翻译成反演/映射算法,它是映射算法中的一种。Wolfram MathWorld百科有详细的介绍,网址如下所示。https://mathworld.wolfram.com/Inversion.html


 【数学原理】inversion

通过上述的图例,通过作图法就可以找出映射点P与原始点P’之间的关系,作一个圆作为映射参考,半径为k,圆内的原始点P’,连接O点,经P’点作OP的垂直线QP’,与圆相交于Q点,过Q点作圆的切线QP,QP与直线OP相交于P点,那么映射点P点就这样求出来了。经过公式推算,点P’(X’,Y’)与点P(X,Y)的关系如下式所示,那么编程的话就用这个公式就可以了。

采用上述公式即可以编程了。


我通过Pascal语言编了程序重现了书上的两个例子,棋盘与Sierpinski三角形的反演/映射图。

这个是原书的两个例子。


通过PASCAL语言编程实现了书上的例子,体现数学之美。


Sierpinski是采用分形算法画出来的三角形,右边是映射图,原来三角尖是向外的变成向内的。

这个算法的特点,把正交的图形变成中心对称的图形,映射算法还有很多,如柱面或球面的映射可对应实际的物理现象。程序可以导入图形,对任意图片进行映射,如阿拉伯风格的磁砖(左边是原因,右边是映射图),如下图所示。通过这个算法,你设计了一个中心对称的图案,相当于设计了两个。

正交形对称图案可以马上变成中心对称图案


对于非对称的图案,效果就差点意思,只能把蒙罗丽莎变成碗豆人了。


映射的中心点(圆心点O)可以修改,那么我制作了一个很晕的动图,如下所示。


点击下面的【阅读原文】可以得到下载方法
 【程序下载】
点击下载:图形程序的下载地址:math_art_inversion.rar


本文来自网络,不代表钢构人的立场,转载请注明出处。搜索工程类文章,就用钢构人网站。 https://www.ganggouren.com/2021/05/92a8e0f5ad/
上一篇
下一篇

作者: ganggouren

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

17717621528

在线咨询: QQ交谈

邮箱: 1356745727@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部