【BiliBili】 【知乎】 【QQ空间】 【微博】


博学慎思,坚持创新,求知若飢,虛心若愚                       关键字     类型    
  • 博主
  • 全部
  • 日志
  • 研究
  • 论文
  • 自编程序
  • 工程
  • Dino笔记
  • DinoBox
  • OpenSEES
  • Dino公开课
  • 每周挑战
  • Dino爱编程
  • 留言板

DinoBox

Grasshopper插件 JerryFish
JerryFish[GH]
2022-07-27
ETE_Frame3D
结构分析程序
ETE_Frame3D
2022-01-19
ETE-section截面分析程序
ETE-section
2021-08-19
上一篇 | 下一篇
Dino爱编程 订阅所有Dino爱编程的日志

[Dino爱编程]几何_图形的映射inversion算法

作者:dinochen1983 日期:2021-05-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






[本日志由 dinochen1983 于 2021-11-08 04:08 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 数学数学
评论: 0 | 引用: 0 | 查看次数: 6873
发表评论
昵 称:
密 码: 游客发言不需要密码.
验证码: 验证码
Dino:如果看不到验证码,再刷几下就可以了
内 容:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 200 字 | UBB代码 关闭 | [img]标签 关闭

信息(Information)

DinoChen 视频频道

My GitHub Page



扫描以下二维码,加入公众号!


dinochen.com需要你的支持


日历(Calendar)

2022年8月
  • 日
  • 一
  • 二
  • 三
  • 四
  • 五
  • 六
  • 31
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 1
  • 2
  • 3

查找(Search)

关键字
 
类 型

文章(Recent Article)

[OpenSEES]OpenSEES实例教程[汇总...[程序]Grasshopper插件Jerry Fi...[Dino笔记]粒子群算法在桁架结构中的应用[获奖]WSP亚洲2021年卓越奖获得一等奖与创新...[Dino笔记]基于遗传算法对剪力墙结构优化设计方...[Dino笔记]基于OpenSEES虚功原理的钢结...[OpenSEES] 新版ETO更新及相关下载方法...[新闻]祝韩老师荣获广东省科技进步一等奖[程序]ETE-section功能更新:可修改划分...[App开发]采用Swfit语言编制经典的推箱子游...

评论(Comments)

陈博士您好,ETE-sec最新版本和以前的一些版本...您好。陈博士,想问一下怎么下载这个软件呀陈博士您好,这个小工具好像有点问题,有效翼板宽度b...打开的时候显示“你没有许可证”,怎么弄啊陈博士您好,这个是需要购买的软件还是可以试用的怎么查看文档计算过程呢,陈博士一直显示出现一个错误字符无法计算是什么原因呢?为什么一直出错计算不了?陈博士,能共享下文件嘛?第二版没有光盘陈博士您好,我换了好几台电脑ETE还是需要许可,

留言(GuestBook)

请问陈博士,对于任意截面的柱配筋设计改如何实现,本...各位老师好,我是小白,请问大家有没有编写过open...陈博士您好,挡土墙计算的程序是否可以修改成挡土墙内...陈博士您好,想请问一下零长度单元用在桥梁的支座上,...陈博,新版ETO下载以后界面打不开是什么原因呢,旧...陈博士您好,请问可以出一期画易损性曲线的教程吗陈博士您好,我在学习您4.33侧向多自由度简化模型...陈博士您好,計算wind2019的program ...陈博士,您好,我下载使用了您编写的压型钢板组合楼板...陈博士您好,我是opensee初学者,想向您请教两...

TagBar

Loading...

用户面板(User Panel)

登录用户注册

统计(Statistics)

日志: 409 篇
评论: 895 个
留言: 418 个
访问: 14331037 次
在线: 5 人
建站时间: 2008-02-08

Powered By PJBlog3 V2.7 Build 05 CopyRight 2005 - 2011, 陈学伟的博客

Processed in 0.203125 second(s) , 6 queries 粤ICP备15071789号-1