<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          手把手教你用Javascript制作隨機(jī)星星效果圖

          共 1888字,需瀏覽 4分鐘

           ·

          2020-12-14 14:03

          點(diǎn)擊上方“IT共享之家”,進(jìn)行關(guān)注

          回復(fù)“資料”可獲贈Python學(xué)習(xí)福利

          一、前言

          在瀏覽一些圖片網(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();


          五、效果展示

          1、點(diǎn)擊f12運(yùn)行到瀏覽器

          2、每次刷新網(wǎng)頁,隨機(jī)產(chǎn)生不一樣的星星和隨機(jī)顏色。


          六、總結(jié)

          1. 本項目利用canvas畫布,實現(xiàn)星星圖的效果,以及在運(yùn)用javascript產(chǎn)生星星效果時,遇到的一些難點(diǎn)進(jìn)行了分析及提供解決方案。

          2. 歡迎大家積極嘗試,有時候看到別人實現(xiàn)起來很簡單,但是到自己動手實現(xiàn)的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。

          3. 代碼很簡單,希望對你有所啟發(fā)。

          看完本文有收獲?請轉(zhuǎn)發(fā)分享給更多的人

          IT共享之家

          入群請在微信后臺回復(fù)【入群】

          -------------------?End?-------------------

          往期精彩文章推薦:

          瀏覽 52
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本处女学生妺一级片 | 视频一区二 | 国产一级婬片A片免费看狼牙 | 天天精品 | 豆花成人原创av 高清无码啊a视频 |