土木在线论坛 \ 建筑结构 \ 结构资料库 \ 【DINO爱编程】几何_图形的反演映射算法

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

发布于:2021-05-27 13:21:27 来自:建筑结构/结构资料库 [复制转发]

【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

全部回复(0 )

只看楼主 我来说两句抢沙发
这个家伙什么也没有留下。。。

结构资料库

返回版块

41.19 万条内容 · 374 人订阅

猜你喜欢

阅读下一篇

图审:设计要对勘察适用性进行复核!

回帖成功

经验值 +10