今天为大家展现一些有趣的视觉现象及其背后的数学问题:

一、直与弯

咦?一根直杆为什么能从弯曲的洞中穿过?

想想这其实不奇怪。这根杆是斜着的,杆中间的点离旋转轴最近,因此对应的洞上的点离旋转轴也最近;杆的两边离旋转轴较远,因此对应的洞上的点离旋转轴也远。所以,这个洞不会是直线,只会是一条曲线。

那这是什么曲线?感兴趣的读者可以自己动手算一算。答案是双曲线。

把这个曲线绕旋转轴旋转一周,形成一个曲面,叫做单叶双曲面。看看下图你就会发现,这根杆所在直线是这个曲面的一部分:

对于一个曲面,如果经过曲面上的每一点都有一根直线在曲面上,我们就称之为直纹曲面。圆柱面、圆锥面都是直纹曲面的例子,单叶双曲面也是如此,只不过它上面的直线看起来不是那么显而易见。单叶双曲面还有一个神奇的地方:通过它上面的每一个点,都有两条直线在曲面上。

这样的特点使得单叶双曲面在建筑当中也有特殊的应用,比如说俗称“小蛮腰“的广州新电视塔。

二、圆锥曲线

图片来源:mathgifs

大家都知道,椭圆、抛物线、双曲线这些曲线称为“圆锥曲线”。但这个词是怎么来的呢?

既然叫圆锥曲线,当然与圆锥有关。首先,我们来想象一个圆锥——确切地说,是一个圆锥面。它是一条直线绕与它相交(但不垂直)的另一条直线旋转一周所形成的曲面。我们平常所见的圆锥体的侧面,只是圆锥面的一部分。

然后,我们用一个平面去截它。平面与圆锥面相交之处,是一条曲线。由于整条曲线都在这个平面上,我们可以把它看作一个平面曲线。这便是圆锥曲线。平面与圆锥的旋转轴所成的角度不同,曲线就会变成不同的形状:圆、椭圆、抛物线、双曲线(其中圆可以看作是一种特殊的椭圆)。

对圆锥曲线的研究是从古希腊开始的。那时还没有解析几何,数学家研究圆锥曲线的时候,采用的就是上面的定义。古希腊数学家阿波罗尼奥斯就是从这样的定义出发,写下了八卷《圆锥曲线论》。

图中还展示了一些圆锥曲线的退化情形:在平面经过圆锥的顶点的时候,圆锥曲线会变成两条相交的直线,两条重合的直线,或者一个点。

三、圆面积公式

图片来源:matthen

圆面积公式S =πr2大家都学过,你还记得课本中如何讲解这个公式的推导吗?在我当年学习的人教版的教材中,是把圆剪成了一个个小扇形,然后把它们近似地拼成一个长为πr,宽为r的矩形。扇形裁得越小,拼出来的东西也就越接近矩形,然后用矩形的面积公式就可以计算了。

而这里用了另一种办法:把圆拆成一个个同心的细圆环。然后,把这些圆环展开,变成高为r,底边长为2πr的的三角形。当然,这谈不上是严谨的证明,但其中已经蕴含了一些微积分的思想。我们甚至可以利用类似于古希腊穷竭法的办法,把它写成一个相对严谨的证明。

四、无限雪花

图片来源:functor.co

“分形”这个词大家可能已经见过很多次了。它的特点是自相似。比如说,上图中的科赫曲线,它的局部放大之后和整体长得一模一样。

那这样的曲线是怎样画出来的呢?

我们先画一条线段,然后把它三等分,将中间的那一段换成两段同样长的线段。这样,我们就有了四条线段。对这四条线段也重复这一过程。每重复一次,称为一次迭代。无限地迭代下去之后,我们就得到了科赫曲线。当然,实际画图的时候,不可能真的无限迭代下去,常常只需要迭代有限多次,直到看不出区别了为止。

Matrix67在他的博客中也展示过科赫曲线的绘制过程(有兴趣者可复制链接http://www.matrix67.com/blog/archives/6231至浏览器查看):

在这里还可以看到一个三维的分形动图,3D眩晕者请快速跳过。

五、朱利亚集

这是另外一种分形——朱利亚集(Julia set)。什么是朱利亚集?我们首先固定一个常数C,对复平面上的一个点,不断地重复进行变换z→z2+C。这样得到的一些点会越跑越远,一直趋向于无穷;而另一些点则一直呆在原点附近,不会跑出一个有限范围。第二类的点所构成的集合,就是朱利亚集。当常数C取值不同时,画出来的朱利亚集也会不同。上面的动图就展示了在C变化时朱利亚集的变化。由这种方式生成的分形图案被称为“逃逸时间分形”。

但是,严格来说,上面所说的只是“填充”的朱利亚集(filled-in Julia set)。真正的朱利亚集是它的边界,也就是上图中的白色线条部分。前面所讲的变换,只是一个二次多项式。对于“填充”的朱利亚集,这个概念可以推广到一般的多项式。对于真正的朱利亚集,还可以推广到分式。

而真正的朱利亚集又有另外一种画法:


先选取一些点,然后对它们不断地进行该变换的“逆变换”——准确的说法是取它们在这个变换下的原像,而一个点的原像往往不止一个。对变换z→z2+C来说,它的原像就是先减去常数C——在图上看来就是平移;然后开平方根——一个数的平方根有两个,在图上看来是先扭一扭,再复制一个到下半平面。每一步都一个变两个,因此出来的点会越来越多。这些点的极限便是朱利亚集。

六、布朗树

这又是另外一种类型的分形——布朗树,生成这种分形的过程,则叫做扩散限制聚集(Diffusion-limited aggregation,简称DLA)。

这过程说起来也很简单:我们有很多粒子和一枚“种子”,粒子在空间中随机游走,但只要碰到种子就会在聚集它上面。种子上聚集的粒子越来越多,就会长成一棵有着错综复杂的结构的“大树”。

科赫曲线和朱利亚集都很漂亮,但在日常生活中不太容易看到。布朗树就不一样了,我们可以在很多地方看到自然形成的布朗树构造,比如说,在皮蛋上:

原文发布时间为:2015-12-18

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

六个酷炫动图背后的数学问题相关推荐

  1. 精选6种制作酷炫动图的方法,收藏!

    上面的两个动图,就是条形竞赛图和折线竞赛图,今天我们就来看看都有哪些方便的方法来制作呢 在线制作 有很多在线的网站都可以制作上述类似的竞赛图,下面我们来介绍萝卜哥常用的两个 flourish 首先推荐 ...

  2. python拿什么做可视化界面好-用python打造可视化爬虫监控系统,酷炫的图形化界面...

    原标题:用python打造可视化爬虫监控系统,酷炫的图形化界面 本文并不是讲解爬虫的相关技术实现的,而是从实用性的角度,将抓取并存入 MongoDB 的数据 用 InfluxDB 进行处理,而后又通过 ...

  3. python中turtle画酷炫图案-用python打造可视化爬虫监控系统,酷炫的图形化界面

    本文并不是讲解爬虫的相关技术实现的,而是从实用性的角度,将抓取并存入 MongoDB 的数据 用 InfluxDB 进行处理,而后又通过 Grafana 将爬虫抓取数据情况通过酷炫的图形化界面展示出来 ...

  4. 【python】彩色图秒变酷炫黑白图,灰度模式,比PS还好用的图像处理,cv2

    使用python中的cv2模块,将彩色图秒变酷炫黑白图,比PS还好用! 完整代码: import cv2 #img = cv2.imread('./imgs/2.jpg',cv2.IMREAD_UNC ...

  5. linux酷炫桌面环境,Linux系统好酷炫漂亮(图)

    Linux系统好酷炫漂亮(图),Linux 本身就非常灵活.在很大程度上您可以定制桌面的外观和行为.没有接触过Linux的朋友可能有这样的观 Linux 本身就非常灵活.在很大程度上您可以定制桌面的外 ...

  6. Android使用SVG矢量图打造酷炫动效!

    一个真正酷炫的动效往往让人虎躯一震,话不多说,咱们先瞅瞅效果: 如果你想看 GAStudio Github主页,请戳这里: 如果你想看 GAStudio更多技术文章,请戳这里: QQ技术交流群:277 ...

  7. 行业思考 | 酷炫动效是否利于你的产品设计?

    本文为PMCAFF专栏作者南可出品 前言 写这篇文章的起因是前段时间在Meidum上读到的一篇驳斥dribbble发展现状的文章.文章发表在16年,其中提到:"我不认为dribbble解决了 ...

  8. 《女神异闻录5》那套酷炫界面的背后,是18年来的始终如一

    <女神异闻录5>是近两年最为火热的JRPG游戏之一,它的出色不仅在于剧情暗讽社会黑暗面的主旨展现,那套酷炫而又极富冲击力的动态UI设计也成为了本作的一大亮点,不仅成为了部分同行游戏&quo ...

  9. 数据可视化?不如用最经典的工具画最酷炫的图(EXCEL/PPT)

    前言:大家好,这里是Seon塞翁.做数据分析和做科普是类似的,科普的意义在于将晦涩难懂的科学知识,以让大众更易接受和理解的方式呈现.而数据分析中的数据可视化做的正是如此关键中的关键,即是将数据的特点以 ...

最新文章

  1. 强化科技硬实力 厚植创新软实力——访中国科学院院士唐本忠
  2. BZOJ 1666 USACO 2006 Oct. 奶牛的数字游戏
  3. 动态代理——》AOP —— Spring 中的 AOP||AOP 相关术语||学习 spring 中的 AOP 要明确的事
  4. 【html+css练习】小白使用html+css模拟音乐播放器构造了网页音乐播放器--1
  5. 关于英汉混合字符串的分隔方法
  6. 基于Hexo+GitHub Page搭建免费个人博客教程
  7. Android 支付宝 移动支付接口 快速配置
  8. oracle关键字 bulk,oracle和sqlserver的一些保留关键字
  9. 在按钮上绑定一个图案
  10. 如何查看mysql数据库的引擎/MySQL数据库引擎详解
  11. Spring整合MyBatis之MapperFactoryBean
  12. 周期性的方波 matlab,matlab产生方波脉冲和周期性方波信号 - 副本
  13. 用stata计算同比增长率的两种方法
  14. android平板电脑卡槽在哪,外观|增加SIM卡槽_酷比魔方 IWORK8_平板电脑评测-中关村在线...
  15. 遇到过什么印象深刻的bug?
  16. 区块链技术具体要用到什么开发语言?
  17. 正确使用#include和前置声明(forward declaration)
  18. matlab模拟断层成像,基于matlab和nirfast的荧光分子断层成像
  19. 吉林大学珠海学院计算机网络专插本考试考哪些内容,【考试大纲】2020吉林大学珠海学院(美术设计)专插本考题考试全面解析(分享)...
  20. 生活充满大量非理性,读《思考,快与慢》有感

热门文章

  1. omnet 收发信息
  2. python 涨停统计_python 轻松实现获取涨跌停数据
  3. 《卡车模拟器3D》技术支持
  4. day2:算法之美|打开算法之门与算法复杂性
  5. 每日一题——LeetCode977(有序数组的平方)二种方法
  6. 模型实践| CLIP 模型
  7. 地图数据赋能ADAS的探索与实践(转载)
  8. js jq 图片上传功能
  9. scala学习之scala中一些集合的常用函数
  10. S7-200 smart xp(sp3) 环境下的编程软件