两条连线中什么最短_广州出现圆形双彩虹,双彩虹是怎么形成的?为什么会有圆形彩虹?...

彩虹是一种比较常见的自然现象,在早晨和傍晚,雨后阳光中就有可能出现。在9月20日清晨(即今晨…)广州天空中就出现了壮观的双彩虹。

258e90de5ae91b7cedf133e1958a1ee2.png

这还不算特别稀奇的,因为双彩虹其实还是挺常见的,而这次网友还拍到了圆形的双彩虹!

c2e586bb7c9f86445b333b726e3f84ae.png

这估计是99.99%以上同学现实中从来没有见过的了吧?你以为这就完了吗?没完!如果圆形的双彩虹你从前还能在网上看见过,那么下面这个图在今天以前你一定没看见过——与中国第一高塔,广州地标广州塔小蛮腰完美相切的圆形双彩虹!

96b4dcd3a849d789e4916f1afaadb5ac.png

这样的圆形彩虹你应该见不到第二张了(^_^)。看不清?来一张局部放大的吧:

267d461ecb7301ccbd3a4d0bb8f75792.png

那么彩虹是怎么形成的呢?双彩虹又是怎么形成的呢?为什么我们平常看不到圆形的彩虹?如果你有这些疑问,这篇文章将为你解答。

要解答这个问题之前,我们要先了解一个基本常识:光的色散现象。这是由史上最伟大的科学家艾萨克牛顿在三棱镜分光实验中发现的,当太阳光以一定的角度入射三棱镜后,经过折射会被分解成不同颜色的光,这种现象称为光的色散。

41c10861bc09a62e969a1c31131a3cb6.png

我们现在知道,这是由于白色的太阳光是由不同波长的光组成的,不同的波长的可见光对应了不同的颜色,波长最长的可见光为红色,波长最短的为紫色。不同波长的光在介质中具有不同的折射率,红光的折射率较低,紫光的折射率较高,这导致它们以相同的角度入射介质以后会以不同的角度出射,这样就产生了色散。

彩虹形成的原因,就是太阳光照射空气中的小水珠后经过折射-反射-再折射后产生色散的现象。我们先看一下太阳光在水珠中的行进路径:

53a4a6c6451fd8935678a325776ca0d2.png

上图是代表太阳光中的红光在水滴中产生的折射与反射过程,而由于不同波长的光在水滴中的折射率并不一样,所以我们来看看折射率更高的紫光的折射和反射路径:

90dc44a10cdd7eb3cabd2a53ff762b30.png

由于不同的折射率,太阳光入射同一个水滴后,会把红光和紫光散射向不同的方向,紫光散射的方向更高,所以在这一个水滴里,我们只能看到反射的红光。要把紫光刚好也这样折射在反射到我们的眼里,太阳光需要照射更低的水滴,因此,我们看到那道明亮的彩虹的颜色是上面是红光,下面是紫光。

036cd86be7f4abe745dcb16dc866205d.png

那么问题来了,它为什么是弧形的?这就是由于那个折射率导致的。在上面的折射-反射路径图中,有没有留意我下面标注了一个角度≈42°?这就是太阳光经过水滴反射到我们眼里时所产生的折射率。以太阳和你的连线作为圆心,以42度为夹角画一个圆就是你能看到的圆形彩虹了,但由于大部分情况下,彩虹的下半部分是被地平线遮挡的,所以我们通常只能看到半圆弧的彩虹,这同时也是我们为什么只能在清晨和傍晚看到彩虹的原因。

39d065668a90a153a8683ef7e0cebcdb.png

知道这个弧形的成因你就会明白为什么有的时候能看见圆形的彩虹,答案很简单,只要你站得足够高,以至圆形彩虹的下半部分不被遮挡,就能看见一个完整的圆形彩虹了。你能看到的圆形彩虹相片,无一例外都是从高空拍摄的。

fc4cc551103823d458a0407793e54678.png

那么问题又来了,双彩虹那个黯淡的外圈又是怎么回事呢?那一圈我们一般称为副虹,古时候又称为霓,与明亮的主虹合称为霓虹,晚上五颜六色的霓虹灯就是以此得名的。

副虹其实是由于水滴对太阳光的二次折射反射导致的。由于上面的光路折射-反射图大家已经大概知道光路的原理了,所以这个图我就画简单一点,也不标注文字了,大家只要能看明白上面两个图就应该能看明白这个。

604adca8d49940f193a0566e552c7d16.png

当太阳光经过这样的二次折射和反射,红光和紫光的上下位置就逆转了,红光需要照射更低的水滴才能反射进我们的眼睛,因此我们看到副虹的颜色顺序跟主虹是相反的。副虹经过二次折射-反射后,夹角达到约51度,因此它处在主虹的外围。同时由于经过了二次反射,被反射的光会大量减少,毕竟水滴本身是透光的,所以副虹一般比较暗淡,很多时候是看不见的。

6dfc6b1bf0c639169d00c97a652be9af.png

今天的科普到此为止了,我是星宇飘零2099,如果喜欢科学,欢迎关注我,会持续更新有趣科普。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个用d3.js画两条line并添加动画连线效果的示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>D3.js Line Animation Example</title> <script src="https://d3js.org/d3.v5.min.js"></script> </head> <body> <svg width="500" height="300"></svg> <script> // 定义数据 var data1 = [{x: 50, y: 50}, {x: 150, y: 150}, {x: 250, y: 100}, {x: 350, y: 200}]; var data2 = [{x: 50, y: 200}, {x: 150, y: 100}, {x: 250, y: 150}, {x: 350, y: 50}]; // 定义画布和线段 var svg = d3.select("svg"); var line1 = svg.append("path").datum(data1) .attr("fill", "none") .attr("stroke", "red") .attr("stroke-width", 2); var line2 = svg.append("path").datum(data2) .attr("fill", "none") .attr("stroke", "steelblue") .attr("stroke-width", 2); // 定义动画函数 function animate() { var totalLength1 = line1.node().getTotalLength(); var totalLength2 = line2.node().getTotalLength(); line1.attr("stroke-dasharray", totalLength1 + " " + totalLength1) .attr("stroke-dashoffset", totalLength1) .transition() .duration(2000) .ease(d3.easeLinear) .attr("stroke-dashoffset", 0); line2.attr("stroke-dasharray", totalLength2 + " " + totalLength2) .attr("stroke-dashoffset", totalLength2) .transition() .duration(2000) .ease(d3.easeLinear) .attr("stroke-dashoffset", 0); } // 调用动画函数 animate(); </script> </body> </html> ``` 在这个示例,我们首先定义了两条线段的数据 `data1` 和 `data2`,然后使用 `d3.select()` 方法选择 SVG 元素,并分别添加两条路径元素 `line1` 和 `line2`。接着,我们定义了一个名为 `animate()` 的动画函数,该函数使用 `getTotalLength()` 方法获取每条线段的总长度,并使用 `attr()` 方法设置 `stroke-dasharray` 和 `stroke-dashoffset` 属性,从而实现路径动画效果。最后,我们在脚本末尾调用动画函数以启动动画效果。 希望这个示例能够帮助你实现你的需求!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值