科学家借助水滴成功模拟自然界“孪生彩虹”

2024-02-25 20:30

本文主要是介绍科学家借助水滴成功模拟自然界“孪生彩虹”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

研究显示,当水滴下降时,空气压力使它的底部变得平坦,形状像一个汉堡包
研究显示,当水滴下降时,空气压力使它的底部变得平坦,形状像一个汉堡包

这是雾虹,小水滴使它看起来接近白色,科学家利用相匹配的水滴模拟雾虹
这是雾虹,小水滴使它看起来接近白色,科学家利用相匹配的水滴模拟雾虹

从左至右:弓形主虹、主虹、双彩虹、多重主虹、孪生彩虹
从左至右:弓形主虹、主虹、双彩虹、多重主虹、孪生彩虹

科学家模拟各种彩虹
科学家模拟各种彩虹

  【搜狐科学消息】据国外媒体报道,美国加州大学圣地亚哥分校计算机系的科学家近日模拟了自然界中发现的所有彩虹,并解答了有关彩虹的物理问题。他们通过模拟光如何与各种形状和大小的水滴相互作用的方法创造了各种各样的彩虹:主虹、副虹、夕阳下的彩虹和雾虹。他们还利用新方法产生了逼真的、难以复制的“孪生彩虹(twinned rainbows)”。研究结果发表在今年12月的顶级期刊《美国计算机协会图形学汇刊》(ACM Transactions on Graphics)上

  加州大学圣地亚哥分校雅各布工程学院((Jacobs School of Engineering)的毕业生伊曼•萨德格海(Iman Sadeghi)博士和他的导师、计算机科学系教授亨里克•沃恩•扬森(Henrik Wann Jensen),以及来自西班牙、英国和瑞士的科学家合作进行此项模拟研究。扬森说:“这超越了计算机图形,我们现在模拟出彩虹是如何形成的几乎完整的画面。” 扬森对计算机图形学很精通。他在2004年利用计算机图形创作了栩栩如生的动画人物皮肤,而获得奥斯卡科学技术奖。他曾为大量的好莱坞大片设计图片,包括詹姆斯•卡梅隆执导的《阿凡达》。

  扬森、萨德格海和同事最初模拟彩虹,以便更好地了解球形水滴如何与光相互作用,产生我们通常在雨后看到的明亮的多色弧。他们希望此项研究能够提高动画电影和视频游戏中使用的技术。萨德格海现在是谷歌圣莫尼卡(Santa Monica)分公司的一名图形软件工程师,他说:“实际上,美丽的彩虹比我们眼睛看到的复杂得多。”

  科学家在进行各种模拟时,他们意识到,光与球形水滴的相互作用无法解释某些种类的彩虹,如孪生彩虹。研究显示,当水滴下降时,空气压力使它的底部变得平坦,形状像一个汉堡包。扬森和他的团队把这些轻微变形的水滴命名为“burgeroids”。扬森说:“这不是一个数学术语,但我们喜欢用它。” 研究人员的模拟实验采用所谓的burgeroids,而不是球形的水滴,他们成功模拟了在自然界中发现的各种彩虹。萨德格海说:“我们第一次准确地模拟了孪生彩虹。”

  数百年前,人类就已经很好地理解了关于彩虹形成的基本原理:是由于阳光射到空气的水滴里,发生光的反射和折射造成的。彩虹角度随着光的颜色而变化,因此,太阳光分离其光谱成分,形成我们在天空中看到的拱形的七彩的光谱。萨德格海说:“彩虹的外观的变化是由于雨滴的大小和形状的变化。” 在过去,杰出的科学家,包括物理学家牛顿和法国数学家笛卡尔,通过计算和进行实验,试图解释彩虹是如何形成的。扬森表示,彩虹的物理现象还没有完全被理解,这令人惊讶。

  扬森研究彩虹的物理学,使他有机会参加马里兰州圣玛丽学院(St. Mary's College )的“自然界中的光与色会议(Light and Color in Nature conference)”,他担任主讲嘉宾,并见到了国际知名的彩虹专家菲利普•拉文(Philip Laven),随后拉文成为了该项研究的合著者之一。拉文说:“到现在为止,大多数模拟彩虹实验都把水滴假设成球形的,这不是真正的大雨点的形状。在此项研究中,研究人员采取了完全不同的方法,并开发出一种更真实的模型重现彩虹。这次所示的仿真模拟使我们更好地了解真正的彩虹。我希望,下一步将使用这些新技术,模拟更精确形状的雨滴产生的彩虹。”(尚力)

 

这篇关于科学家借助水滴成功模拟自然界“孪生彩虹”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/746613

相关文章

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

usaco 1.2 Transformations(模拟)

我的做法就是一个一个情况枚举出来 注意计算公式: ( 变换后的矩阵记为C) 顺时针旋转90°:C[i] [j]=A[n-j-1] [i] (旋转180°和270° 可以多转几个九十度来推) 对称:C[i] [n-j-1]=A[i] [j] 代码有点长 。。。 /*ID: who jayLANG: C++TASK: transform*/#include<

hdu4431麻将模拟

给13张牌。问增加哪些牌可以胡牌。 胡牌有以下几种情况: 1、一个对子 + 4组 3个相同的牌或者顺子。 2、7个不同的对子。 3、13幺 贪心的思想: 对于某张牌>=3个,先减去3个相同,再组合顺子。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOExcepti

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

【算法专场】模拟(下)

目录 前言 38. 外观数列 算法分析 算法思路 算法代码 1419. 数青蛙 算法分析 算法思路 算法代码  2671. 频率跟踪器 算法分析 算法思路 算法代码 前言 在前面我们已经讲解了什么是模拟算法,这篇主要是讲解在leetcode上遇到的一些模拟题目~ 38. 外观数列 算法分析 这道题其实就是要将连续且相同的字符替换成字符重复的次数+

模拟实现vector中的常见接口

insert void insert(iterator pos, const T& x){if (_finish == _endofstorage){int n = pos - _start;size_t newcapacity = capacity() == 0 ? 2 : capacity() * 2;reserve(newcapacity);pos = _start + n;//防止迭代

PHP实现二叉树遍历(非递归方式,栈模拟实现)

二叉树定义是这样的:一棵非空的二叉树由根结点及左、右子树这三个基本部分组成,根据节点的访问位置不同有三种遍历方式: ① NLR:前序遍历(PreorderTraversal亦称(先序遍历)) ——访问结点的操作发生在遍历其左右子树之前。 ② LNR:中序遍历(InorderTraversal) ——访问结点的操作发生在遍历其左右子树之中(间)。 ③ LRN:后序遍历(PostorderT

1 模拟——67. 二进制求和

1 模拟 67. 二进制求和 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1:输入:a = "11", b = "1"输出:"100"示例 2:输入:a = "1010", b = "1011"输出:"10101" 算法设计 可以从低位到高位(从后向前)计算,用一个变量carry记录进位,如果有字符没处理完或者有进位,则循环处理。两个字符串对