讓ai寫了一段夜空的代碼,很輕易且完美的實(shí)現(xiàn)了,沒有用默認(rèn)的python,是因?yàn)閔5不挑環(huán)境,有瀏覽器就能運(yùn)行,只是簡(jiǎn)單演示的話,會(huì)顯得更加友好。
但是這里要說的并不是這個(gè)夜空,雖然ai干不了太精細(xì)太復(fù)雜的重活,但如果只是如此的話,也顯得太過于淺薄了,完全不能體現(xiàn)出它的笨事(劃掉,是本事)。
所以我要求它寫一段星空,不僅要求星星會(huì)閃爍,甚至偶爾還要有流星劃過夜空,想想都很浪漫咧,本來沒報(bào)什么希望,沒想到!它真的!做到了!
其間只出現(xiàn)了兩個(gè)小bug,一是沒有設(shè)置背景色,導(dǎo)致頁面上啥也沒看不到,這個(gè)只要背景設(shè)成黑色就行了。二是流星頭尾顛倒,看起來就像是宇宙范圍內(nèi)的大規(guī)模時(shí)空倒流(當(dāng)然這不是我們想要的笑果……)
總的來說,良品率相當(dāng)高!
下面直接上代碼!使用方法:直接復(fù)制粘貼到文本編輯器中,然后另存為后綴為.html的文件,比如(星空.html),點(diǎn)擊即可運(yùn)行!
ps.注意,windows電腦可能會(huì)默認(rèn)不顯示擴(kuò)展名,這時(shí)候你需要讓擴(kuò)展名顯示出來,然后再設(shè)擴(kuò)展名。否則你的真實(shí)文件名很有可能是這樣的:星空.html.txt。
#ai聊天##chat?GPT##chatgpt到底有多牛#
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>當(dāng)連綿的流星劃過天際,那是山宗對(duì)你的無盡思念</title>
<style>
/* 隱藏滾動(dòng)條 */
body {
margin: 0px;
overflow: hidden;
background-color:black;
}
</style>
</head>
<body>
<canvas id="myCanvas"></canvas>
<script>
// 定義變量
let canvas, context, screenW, screenH, stars=[], meteors=[];
// 定義常量
const FPS=50, numStars=2000;
window.onload=function () {
// 獲取canvas
canvas=document.getElementById('myCanvas');
// 設(shè)置畫布大小
screenW=canvas.width=window.innerWidth;
screenH=canvas.height=window.innerHeight;
// 獲取canvas執(zhí)行上下文
context=canvas.getContext('2d');
// 組件應(yīng)用層
// 創(chuàng)建星星
for (let i=0; i < numStars; i++) {
stars.push({
x: Math.random() * screenW,
y: Math.random() * screenH,
radius: Math.random(),
alpha: Math.random(),
twinkleSpeed: Math.random() * 0.03 + 0.02
});
}
// 創(chuàng)建流星
setInterval(()=> {
let speed=Math.random() * 5 + 5;
meteors.push({
x: -100, // 起始x坐標(biāo)
y: Math.random() * screenH, // 起始y坐標(biāo)隨機(jī)
length: Math.random() * 80 + 60, // 流星長(zhǎng)度隨機(jī)(60-140)
angle: Math.PI / 30 * Math.random() - Math.PI / 6, // 角度隨機(jī)
speed: speed // 速度隨機(jī)(5-10)
});
}, Math.random() * 500 + 600);
// 啟動(dòng)計(jì)時(shí)器
setInterval(update, 1000 / FPS);
}
// 更新
function update() {
// 清除畫布
context.clearRect(0, 0, screenW, screenH);
// 畫星星
for (let i=0; i < stars.length; i++) {
drawStar(stars[i]);
twinkle(stars[i]);
}
// 畫流星
for (let i=0; i < meteors.length; i++) {
moveMeteor(meteors[i]);
drawMeteor(meteors[i]);
}
}
// 畫星星
function drawStar(star) {
context.beginPath();
context.arc(star.x, star.y, star.radius, 0, 2 * Math.PI);
context.fillStyle=`rgba(255, 255, 255, ${star.alpha})`;
context.fill();
}
// 星星閃爍
function twinkle(star) {
star.alpha +=star.twinkleSpeed;
if (star.alpha <=0 || star.alpha >=1) {
star.twinkleSpeed *=-1;
}
}
// 移動(dòng)流星
function moveMeteor(meteor) {
meteor.x +=Math.cos(meteor.angle) * meteor.speed;
meteor.y +=Math.sin(meteor.angle) * meteor.speed;
}
// 畫流星
function drawMeteor(meteor) {
// 漸變色
let gradient=context.createLinearGradient(meteor.x, meteor.y, meteor.x + Math.cos(meteor.angle) * meteor.length, meteor.y + Math.sin(meteor.angle) * meteor.length);
gradient.addColorStop(1, 'rgba(255, 255, 255, 1)');
gradient.addColorStop(0, 'rgba(255, 255, 255, 0)');
context.beginPath();
// 線性漸變填充
context.strokeStyle=gradient;
context.lineCap='round';
context.lineWidth=2;
context.moveTo(meteor.x, meteor.y); // 開始坐標(biāo)
context.lineTo(meteor.x + Math.cos(meteor.angle) * meteor.length, meteor.y + Math.sin(meteor.angle) * meteor.length); // 結(jié)束坐標(biāo)
context.stroke();
}
</script>
</body>
</html>
為了保持小小的神秘感,就不放截圖了,大家自己運(yùn)行康康喲!
將熄滅永不能再回來。
Miguel Claro / TWAN / Dark Sky Alqueva / APOD
以每秒60千米的速度沖入地球大氣層的后果是什么?這顆以燦爛銀河為背景,毅然前行的流星知道答案。
2021年8月12日,攝影師Miguel Claro在葡萄牙的夜空中捕捉到了這顆隸屬于英仙座流星雨的流星。這顆擁有彩色尾跡的流星,自右向左穿越了整個(gè)畫面。
流星軌跡的起點(diǎn)在北半球夏季大三角中的天鵝座主星——天津四附近,終點(diǎn)在天鷹座主星——河鼓二(牛郎星)附近。流星在極短的時(shí)間內(nèi),以超越這兩顆亮星的亮度劃過了天空。
流星尾跡起始端是綠色的,這是英仙座流星的典型特征。英仙座流星是斯威芙特-塔特爾彗星的碎屑。由于這顆彗星的飛行速度相對(duì)于地球很快,所以所有英仙座流星沖入地球大氣時(shí),飛行速度都快得足以使流星體中的氧原子被激發(fā),并在距離地面大約100千米的高空發(fā)出標(biāo)志性的綠光。
流星在發(fā)出短暫的閃光后便被汽化,永遠(yuǎn)消失在夜空中。只有極少數(shù)體積很大的才會(huì)有未燒盡的殘骸落到地面,成為隕石。
參考
Bright Meteor, Starry Sky
https://apod.nasa.gov/apod/ap210819.html
998年11月17日,意大利天文攝影師洛倫佐?洛瓦托(Lorenzo Lovato)拍攝的獅子座流星雨中四顆明亮的流星。
2020年8月12日晚,小編用長(zhǎng)焦抓到的一顆流星,恰好位于畫面正中央,像是夜空中的一把光劍。
流星:流星(Meteors),也被稱作“shooting stars”。來自外層空間的塵埃顆粒闖入地球大氣層與大氣摩擦產(chǎn)生大量熱,從而使塵埃顆粒氣化,在該過程中產(chǎn)生的光跡劃過長(zhǎng)空。我們將大氣層中的這種光現(xiàn)象稱為“流星”(meteor),并將這種塵埃顆粒稱為“流星體”(meteoroid)。
?大小:獅子座流星雨中大部分可見流星的體直徑在1毫米到1厘米之間。在獅子座流星雨中,產(chǎn)生5等亮度流星(在黑暗的天空中用肉眼幾乎看不到)的流星體直徑約0.5毫米,質(zhì)量?jī)H有0.06毫克。
?速度:一個(gè)微小的流星體就足以產(chǎn)生可以在數(shù)百公里距離外也能看到的亮光,其原因在于流星體的高速度。在進(jìn)入地球大氣層時(shí),獅子座流星雨中流星體的速度可高達(dá)每秒71公里,是棒球快投速度的2663倍。換句話來說,流星體在該速度下能夠在3.8分鐘內(nèi)繞地球旋轉(zhuǎn)一周!
?發(fā)光緣由:當(dāng)流星體闖入地球大氣層時(shí),與大氣中的大量分子相碰撞,顆粒外層被撞離母體。在碰撞過程中,一些空氣分子發(fā)生電離。
當(dāng)被離解的電子再次被原子俘獲時(shí)便會(huì)產(chǎn)生發(fā)光現(xiàn)象。這與氣體放電燈中的過程相同。
?流星的顏色:許多流星的顏色是由流星體的金屬原子發(fā)出的光(藍(lán)色,綠色和黃色)以及大氣中的原子和分子發(fā)出的光(紅色)引起的。大部分的獅子座流星顏色像鈉燈燃燒時(shí)的色彩。一個(gè)流星的顏色是流星體的化學(xué)成分及反應(yīng)溫度的體現(xiàn):鈉原子發(fā)出橘黃色光,鐵是黃色,鎂是藍(lán)綠色,鈣為紫色,氮氧則是紅色。
?聲音:流星通常不會(huì)發(fā)出可以聽見的聲音。因此,如果沒有被人看到的話,它就會(huì)悄無聲息地一掃而過。但是對(duì)于那些非常亮的流星,可以注意它們發(fā)出的嘶嘶聲。這些聲音被認(rèn)為是由于極低頻(VLF)無線電波與局部環(huán)境相互作用所致。對(duì)于非常明亮的獅子座流星(被稱為火流星,fireballs),有時(shí)會(huì)聽到音爆。如果流星體的直徑大于大氣分子的平均自由程,則在流星體前邊會(huì)產(chǎn)生大量的激波。偶然情況下,這些激波會(huì)深入到大氣底層從而被我們聽到。這種沖擊波很少會(huì)滲透到大氣中而被聽到。
即使足以被我們聽到,聽起來也像遠(yuǎn)處發(fā)出的隆隆聲。
左圖顯示了流星劃過天空后,其軌跡上留下的明亮余輝。該圖截取自彼得?詹尼斯肯斯(Peter Jenniskens)拍攝的UT火球視頻(04:00:29)。右圖顯示了流星消失幾分鐘后,天文臺(tái)穹頂上方天空中的久現(xiàn)流星余跡,該圖由西班牙馬洛卡天文臺(tái)的烏瑪團(tuán)隊(duì)拍攝。
?流星尾(Wake):流星頭后面的短暫輝光。流星尾主要由中性氧原子的綠光引起。流星尾持續(xù)1至10秒。有時(shí),“流星尾”一詞也用于描述流星頭正后方的區(qū)域。
?流星余輝(Afterglow)是火流星軌跡上金屬原子(Na,F(xiàn)e,Mg)發(fā)出的輝光。余輝僅持續(xù)幾秒鐘。
?久現(xiàn)流星余跡是火流星消失后,有時(shí)會(huì)在其穿過的路徑上留下的云霧狀的長(zhǎng)帶。在4到5等亮度流星體的情況下,久現(xiàn)流星余跡可以持續(xù)1-30分鐘(通常為4-6分鐘)。這些亮光來自金屬原子的化學(xué)反應(yīng)。久現(xiàn)流星余跡的持續(xù)時(shí)間足以對(duì)流星軌跡進(jìn)行望遠(yuǎn)鏡觀測(cè)研究。高空風(fēng)使久現(xiàn)流星余跡的形狀變形。
哈雷彗星(周期彗星表編號(hào):1P/Halley)彗核水汽和塵埃噴發(fā)。
流星從何而來:流星雨是由彗星的碎片引起的。
?流星體如何離開母彗星是一個(gè)亟待研究的問題。當(dāng)彗星接近太陽時(shí),冰蒸發(fā),灰塵顆粒如噴泉般被噴出母體而進(jìn)入彗星軌道。
?彗核是彗星中心的固體部分,由冰和塵埃(主要是塵埃)組成。圖3是哈雷彗星(周期彗星表編號(hào):1P/Halley)的彗核,由喬托號(hào)探測(cè)器(Giotto Satellite)拍攝于1986年。哈雷彗星的彗核比坦普爾-塔特爾(55p/tempel-tuttle)彗星大2-3倍。
?坦普爾-塔特爾(55p/tempel-tuttle)彗星是獅子座流星雨的母彗星。軌道如圖4所示。
Yeomans等人于1996年繪制的坦普爾-塔特爾(55p/tempel-tuttle)彗星軌道。圖中顯示的是1998年2月28日,這顆彗星最近一次經(jīng)過太陽時(shí)的行星位置。坦普爾-塔特爾彗星沿橢圓軌道每33.3年環(huán)繞太陽一周。右圖展示了莫德拉天文臺(tái)經(jīng)4小時(shí)曝光拍攝的全天視野下的1998年11月17日獅子座流星雨大爆發(fā)。
彗星的經(jīng)典圖片,顯示了塵埃彗尾和氣體彗尾(有時(shí)也稱離子彗尾)。
流星雨(METEOR SHOWER):一年中某些天的流星數(shù)量比平時(shí)要多,有許多的流星從天空中同一個(gè)輻射點(diǎn)發(fā)射出來,并且起源于同一顆彗星。獅子座流星雨就是如此。
流星體帶(METEOROID STREAM):是彗星軌上中的塵埃云。當(dāng)?shù)厍蜻M(jìn)入流星體帶時(shí),進(jìn)入大氣層的塵埃顆粒被大氣加熱,發(fā)出明亮的光。從地球上看,是短時(shí)間內(nèi)無數(shù)塵埃顆粒以極高的速度劃過天空下落,從而導(dǎo)致流星雨。
?輻射點(diǎn)(Radiant):流星雨中的所有流星仿佛是從天空同一處散開的,這個(gè)點(diǎn)就稱為輻射點(diǎn)。獅子座流星雨的輻射點(diǎn)位于獅子座。輻射點(diǎn)是一種透視效果。流星從觀測(cè)者的前后左右掃過天空,然而它們的反向延長(zhǎng)線交匯一處,即輻射點(diǎn)。
?塵埃彗尾沿著彗星軌道方向分布。
?塵埃彗尾是由微小的塵埃顆粒(顆粒直徑小于0.1毫米)組成,常稱作“彗星塵”,能夠散射太陽光。彗星塵不僅受太陽的引力作用(受彗核的引力極微小),而且還受太陽輻射壓力的推斥作用。
?離子彗尾主要由氣體離子組成,在太陽風(fēng)的作用下,彗發(fā)的一些氣體轉(zhuǎn)變成離子,它不但受到太陽引力及輻射壓力的作用而背向太陽運(yùn)動(dòng),同時(shí)還受太陽風(fēng)及其磁場(chǎng)的影響,所以相較于塵埃尾,離子尾更長(zhǎng),更直。此外,由于太陽風(fēng)及其磁場(chǎng)的變化,離子尾可能會(huì)出現(xiàn)扭曲變形等現(xiàn)象。
?不同塵埃彗尾中的塵粒大小不同,受到太陽輻射壓力的大小也不同,所以離開彗核的時(shí)間也不同。大顆粒仍保留在母彗星的周圍形成塵埃彗發(fā);小顆粒被太陽的輻射壓力吹散,形成彗尾。剩余物質(zhì)繼續(xù)留在彗星軌道附近。然而即便是微小的噴發(fā)速度,也會(huì)引起微粒公轉(zhuǎn)周期的大不同。因此,在下次彗星回歸時(shí),小微粒將滯后母體,而大顆粒將超前于母體。當(dāng)?shù)厍虼┻^塵埃尾時(shí),我們就有機(jī)會(huì)看到流星雨。
?當(dāng)?shù)厍蛟竭^這種塵埃尾時(shí),會(huì)產(chǎn)生“流星暴”(Meteor storm)。正式來說,流星風(fēng)暴的速度必須高達(dá)每小時(shí)超過1000顆流星,或每秒1顆流星。
?獅子座流星雨平常年份流星數(shù)目并不多,只是每隔33年才有一次程度不等、規(guī)模較大的流星暴出現(xiàn)。獅子座流星雨在每年的11月13日至20日左右出現(xiàn),極大期出現(xiàn)在11月17日。
參考:
https://leonid.arc.nasa.gov/meteor.html
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。