0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何通過html+css樣式和js的方式實現(xiàn)星星圖的效果

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-24 18:13 ? 次閱讀

一、前言

在瀏覽一些圖片網(wǎng)站的時候,經(jīng)常會看到很多的漂亮的星空圖,比如,下面的圖片。其實這種星星圖片的效果,也可以通過html+css樣式和js的方式來實現(xiàn)。今天教大家如何實現(xiàn)星星圖的效果。

二、項目準(zhǔn)備

軟件:Dreamweaver

三、實現(xiàn)的目標(biāo)

每次刷新產(chǎn)生隨機(jī)的星星個數(shù)。顯示畫布上。

四、項目實現(xiàn)

1. 創(chuàng)建canvas畫布<body> <canvas id='canvas'></canvas></body>2. 添加css樣式。

給canva 畫布加上邊框,方便觀察。

<style type="text/css"> canvas{ border:2px solid #f00;}</style>3.添加js樣式
3.1 設(shè)置canvas畫布大小 ,定義需要變量。<script type="text/javascript"> var _canvas=document.getElementById("canvas") _canvas.width=500; _canvas.height=500;var r,g ,b,a;</script>3.2 產(chǎn)生隨機(jī)圓。
for (var j = 0; j < 150; j++) { arc.x=Math.floor(Math.random()*_canvas.width); arc.y=Math.floor(Math.random()*_canvas.height); arc.r=Math.floor(Math.random()*31+10); r=Math.ceil(Math.random()*256); g=Math.ceil(Math.random()*256); b=Math.ceil(Math.random()*256); a=Math.random();
darw();}3.3 定義draw()方法,通過畫星星公式,將圓形轉(zhuǎn)換成星星狀 for 循環(huán)產(chǎn)生隨機(jī)位置星星。

如何畫星星?(公式解析)(圖片來源百度)

星星有內(nèi)切圓和外切圓,每兩個點(diǎn)之間的角度是固定的,因此可得到星星的每個點(diǎn)的坐標(biāo),畫出星星。

隨機(jī)產(chǎn)生星星for (var i = 0; i < 5; i++) {
_ctx.lineTo(Math.cos((18+72*i)/180*Math.PI)*arc.r+arc.x, -Math.sin((18+72*i)/180*Math.PI)*arc.r+arc.y);
_ctx.lineTo(Math.cos((54+72*i)/180*Math.PI)*arc.r/2+arc.x, -Math.sin((54+72*i)/180*Math.PI)*arc.r/2+arc.y); }3.4 隨機(jī)產(chǎn)生顏色。

Math函數(shù)隨機(jī)產(chǎn)生0-225的RGB值。

隨機(jī)顏色 _ctx.fillStyle="rgba(" + r + "," + g + "," + b + "," + a + ")"; _ctx.fill(); _ctx.strokeStyle="rgba(" + r + "," + g + "," + b + "," + a + ")"; _ctx.stroke(); }3.5. 調(diào)用draw()方法實現(xiàn)功能。
darw();


審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    54512
  • Canvas
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    11181
收藏 0人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    CSS6404LS-LI PSRAM:高清語音識別設(shè)備的理想存儲器解決方案

    CSS6404LS-LI通過 >500MB/s帶寬、105℃高溫運(yùn)行及μA級休眠功耗三重突破,成為高清語音設(shè)備的理想存儲器
    的頭像 發(fā)表于 06-04 15:45 ?73次閱讀
    <b class='flag-5'>CSS</b>6404LS-LI PSRAM:高清語音識別設(shè)備的理想存儲器解決方案

    基于衛(wèi)星圖像的智能定位系統(tǒng)軟件

    應(yīng)用中取得了顯著成效。例如,北京華盛恒輝和北京五木恒潤基于衛(wèi)星圖像的智能定位系統(tǒng)。這些成功案例為基于衛(wèi)星圖像的智能定位系統(tǒng)的推廣和應(yīng)用提供了有力支持。 一、核心功能 高精度定位:通過衛(wèi)星導(dǎo)航系統(tǒng)和高分辨率衛(wèi)星遙感
    的頭像 發(fā)表于 04-01 09:55 ?249次閱讀

    基于衛(wèi)星圖像的智能定位系統(tǒng)全面解析

    智慧華盛恒輝基于衛(wèi)星圖像的智能定位系統(tǒng),作為融合衛(wèi)星導(dǎo)航、圖像處理以及智能算法的前沿科技,在高精度定位領(lǐng)域表現(xiàn)卓越。下面為您全方位深入剖析該系統(tǒng)。 ? 一、系統(tǒng)架構(gòu)構(gòu)成 基于衛(wèi)星圖像的智能定位系統(tǒng)
    的頭像 發(fā)表于 03-31 16:55 ?255次閱讀

    異形拼接處理器可以實現(xiàn)效果

    異形拼接處理器可以實現(xiàn)效果非常多樣化和創(chuàng)新,以下是對其可實現(xiàn)效果的進(jìn)一步補(bǔ)充: 一、創(chuàng)意拼接顯示 1、任意角度拼接:異形拼接處理器支持0~360度任意角度的拼接顯示,使得顯示屏可以以
    的頭像 發(fā)表于 03-21 12:39 ?185次閱讀
    異形拼接處理器可以<b class='flag-5'>實現(xiàn)</b>的<b class='flag-5'>效果</b>

    前端響應(yīng)式設(shè)計全解析:打造適配多終端的頁面

    在移動互聯(lián)網(wǎng)時代,前端響應(yīng)式設(shè)計能讓網(wǎng)頁在不同設(shè)備上都有良好的展示效果。下面解析其實現(xiàn)方法。 使用 CSS 媒體查詢是基礎(chǔ)。媒體查詢可根據(jù)設(shè)備屏幕寬度、高度等條件,應(yīng)用不同的 CSS
    的頭像 發(fā)表于 01-17 14:23 ?408次閱讀

    Tailwind CSS v4.0發(fā)布首個Beta版本

    Tailwind CSS 是一個為快速開發(fā)而精心設(shè)計的原子類 CSS 框架,它提供了充滿設(shè)計感和應(yīng)用程序至上的能力來創(chuàng)建組件,它在最新的 2.0 版本中加入了暗黑模式,開箱即用。
    的頭像 發(fā)表于 11-25 10:02 ?599次閱讀
    Tailwind <b class='flag-5'>CSS</b> v4.0發(fā)布首個Beta版本

    Taro 鴻蒙技術(shù)內(nèi)幕系列(二):如何讓 W3C 標(biāo)準(zhǔn)的 CSS跑在鴻蒙上

    HarmonyOS 采用自研的 ArkUI 框架作為原生 UI 開發(fā)方案,這套方案有完善的布局系統(tǒng)和樣式控制,但是他的標(biāo)準(zhǔn)與 W3C 的 CSS 標(biāo)準(zhǔn)存在不一致性。這意味著,如果 Taro 直接
    的頭像 發(fā)表于 10-31 10:54 ?449次閱讀
    Taro 鴻蒙技術(shù)內(nèi)幕系列(二):如何讓 W3C 標(biāo)準(zhǔn)的 <b class='flag-5'>CSS</b>跑在鴻蒙上

    研發(fā)都應(yīng)該了解的如何在vite中接入現(xiàn)代化css工程化方案

    好的css工程化方案可以增強(qiáng)我們項目的可維護(hù)性、提高樣式的復(fù)用性、進(jìn)行自動化處理等,在提高頁面加載速度和性能的同時,我們可以有更多的精力進(jìn)行js邏輯的處理。
    的頭像 發(fā)表于 10-25 17:25 ?712次閱讀

    JS實現(xiàn)簡單的屏幕錄像機(jī)

    作者:京東保險 張潔 本文將介紹如何用JS實現(xiàn)簡單的屏幕錄像機(jī)。 一、錄制準(zhǔn)備 創(chuàng)建一個按鈕 ? Start recording ? 書寫JavaScript ? var
    的頭像 發(fā)表于 10-09 15:27 ?360次閱讀

    鴻蒙跨端實踐-JS虛擬機(jī)架構(gòu)實現(xiàn)

    類似的框架,我們需要自行實現(xiàn)以確保核心基礎(chǔ)能力的完整。 鴻蒙虛擬機(jī)的開發(fā)經(jīng)歷了從最初 ArkTs2V8 到 JSVM + Roma新架構(gòu)方案 。在此過程中,我們實現(xiàn)了完整的鴻蒙版的“J2V8”和 基于系統(tǒng)JSVM的JS虛擬機(jī)框架
    的頭像 發(fā)表于 09-30 14:42 ?2888次閱讀
    鴻蒙跨端實踐-<b class='flag-5'>JS</b>虛擬機(jī)架構(gòu)<b class='flag-5'>實現(xiàn)</b>

    基于CSS融合存儲系統(tǒng)的自動化制造服務(wù)平臺存儲解決方案

    基于CSS融合存儲系統(tǒng)的自動化制造服務(wù)平臺存儲解決方案
    的頭像 發(fā)表于 09-10 10:15 ?558次閱讀
    基于<b class='flag-5'>CSS</b>融合存儲系統(tǒng)的自動化制造服務(wù)平臺存儲解決方案

    推薦一個支持js的嵌入式設(shè)備開發(fā)平臺

    可以通過vscode開發(fā)js,實時推送js代碼到設(shè)備里運(yùn)行,無需編譯,支持屏幕,感興趣的可以看看 https://github.com/duoxianwulian/dxdop 提供很多js
    發(fā)表于 09-04 14:04

    雙軸測徑儀的四種樣式!

    儀設(shè)計了四種外觀樣式。 45°角布置的開口測徑儀 這個樣式的雙軸測徑儀是目前大部分產(chǎn)線所使用的,樣式簡單大氣。用于外徑及橢圓度尺寸的檢測。 45°角布置的閉口測徑儀 該樣式的雙軸測徑儀
    發(fā)表于 08-27 17:42

    PGA900能直接在CSS上編程嗎?

    您好,PGA900能直接在CSS上編程嗎? 可以通過XDS200下載程序到PGA900上面嗎?
    發(fā)表于 08-08 07:31

    bootstrap框架和vue框架的區(qū)別

    響應(yīng)式移動優(yōu)先的網(wǎng)頁。Bootstrap的核心設(shè)計理念是“移動優(yōu)先”,即優(yōu)先考慮移動設(shè)備的顯示效果,然后通過媒體查詢等技術(shù)實現(xiàn)對不同設(shè)備的適配。Bootstrap提供了一套豐富的CSS
    的頭像 發(fā)表于 07-11 09:55 ?1334次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品