Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 天天操天天摸天天曰天天干天天弄天天干 ,国产精品久久久久久久免费大片 ,在线免费视频一区二区

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          使用Javascript 運(yùn)用「遞歸」繪制「一棵樹」

          使用Javascript 運(yùn)用「遞歸」繪制「一棵樹」的示例

          anvas是HTML5中的一個(gè)重要特性,它是一個(gè)可以使用JavaScript繪制圖形的HTML元素。本文將分為以下幾個(gè)部分:

          1. 準(zhǔn)備工作
          2. 繪制背景
          3. 繪制樹
          4. 完整代碼

          接下來,我們將逐一詳細(xì)講解。


          1. 準(zhǔn)備工作

          首先,我們需要在HTML文檔中添加一個(gè)Canvas元素,并設(shè)置它的寬度和高度。代碼如下:

          <canvas id="canvas" width="800" height="600"></canvas>

          接下來,我們需要在JavaScript中獲取這個(gè)Canvas元素,并獲取它的繪圖上下文。代碼如下:

          const canvas=document.getElementById('canvas');
          const ctx=canvas.getContext('2d');

          2. 繪制背景

          在繪制樹之前,我們需要先繪制一個(gè)背景。這里我們使用Canvas的漸變函數(shù)來實(shí)現(xiàn)一個(gè)漸變色的背景。代碼如下:

          const gradient=ctx.createLinearGradient(0, 0, 0, canvas.height);
          gradient.addColorStop(0, '#1e3c72');
          gradient.addColorStop(1, '#2a5298');
          ctx.fillStyle=gradient;
          ctx.fillRect(0, 0, canvas.width, canvas.height);

          3. 繪制樹

          接下來,我們就可以開始繪制樹了。

          3.1 繪制樹干

          首先,我們需要繪制樹干。樹干是由一條豎直的線段組成的,我們可以通過Canvas的lineTo函數(shù)來實(shí)現(xiàn)。代碼如下:

          ctx.beginPath();
          ctx.moveTo(canvas.width / 2, canvas.height);
          ctx.lineTo(canvas.width / 2, canvas.height - 50);
          ctx.lineWidth=10;
          ctx.strokeStyle='#8b5a2b';
          ctx.stroke();

          這段代碼中,我們首先通過beginPath函數(shù)開始一條新的路徑,然后通過moveTo函數(shù)將路徑的起點(diǎn)移動(dòng)到Canvas的中心點(diǎn),再通過lineTo函數(shù)將路徑的終點(diǎn)移動(dòng)到Canvas的底部上方50個(gè)像素的位置。最后,我們通過lineWidth和strokeStyle屬性設(shè)置線段的寬度和顏色,并通過stroke函數(shù)將路徑繪制出來。

          3.2 繪制樹枝

          接下來,我們需要在樹干的頂端繪制樹枝。樹枝是由多條斜線段組成的,我們可以通過遞歸函數(shù)來實(shí)現(xiàn)。代碼如下:

          function drawBranch(x1, y1, angle, depth) {
            if (depth===0) return;
            const x2=x1 + Math.cos(angle) * depth * 10;
            const y2=y1 + Math.sin(angle) * depth * 10;
            ctx.beginPath();
            ctx.moveTo(x1, y1);
            ctx.lineTo(x2, y2);
            ctx.lineWidth=depth;
            ctx.strokeStyle='#8b5a2b';
            ctx.stroke();
            drawBranch(x2, y2, angle - 0.3, depth - 1);
            drawBranch(x2, y2, angle + 0.3, depth - 1);
          }
          drawBranch(canvas.width / 2, canvas.height - 50, -Math.PI / 2, 10);

          這段代碼中,我們定義了一個(gè)名為 drawBranch 的遞歸函數(shù)。該函數(shù)接受四個(gè)參數(shù):x1、y1表示樹枝的起點(diǎn)坐標(biāo),angle表示樹枝的傾斜角度,depth表示樹枝的深度。當(dāng)樹枝的深度為0時(shí),遞歸結(jié)束。否則,我們先通過Math.cos和Math.sin函數(shù)計(jì)算出樹枝的終點(diǎn)坐標(biāo)x2和y2,然后通過lineTo函數(shù)將路徑的終點(diǎn)移動(dòng)到該坐標(biāo)處。接著,我們通過lineWidth和strokeStyle屬性設(shè)置線段的寬度和顏色,并通過stroke函數(shù)將路徑繪制出來。最后,我們通過遞歸調(diào)用drawBranch函數(shù)來繪制下一層樹枝。

          完整代碼

          <canvas id="canvas" width="800" height="600"></canvas>
          <script>
            const canvas=document.getElementById('canvas');
            const ctx=canvas.getContext('2d');
          
            const gradient=ctx.createLinearGradient(0, 0, 0, canvas.height);
            gradient.addColorStop(0, '#1e3c72');
            gradient.addColorStop(1, '#2a5298');
            ctx.fillStyle=gradient;
            ctx.fillRect(0, 0, canvas.width, canvas.height);
          
            function drawBranch(x1, y1, angle, depth) {
              if (depth===0) return;
              const x2=x1 + Math.cos(angle) * depth * 10;
              const y2=y1 + Math.sin(angle) * depth * 10;
              ctx.beginPath();
              ctx.moveTo(x1, y1);
              ctx.lineTo(x2, y2);
              ctx.lineWidth=depth;
              ctx.strokeStyle='#8b5a2b';
              ctx.stroke();
              drawBranch(x2, y2, angle - 0.3, depth - 1);
              drawBranch(x2, y2, angle + 0.3, depth - 1);
            }
            drawBranch(canvas.width / 2, canvas.height - 50, -Math.PI / 2, 10);
          
          </script>
          

          動(dòng)畫所示,應(yīng)該加一句什么代碼呢?


          希望本文能夠?qū)δ兴鶐椭兄x您的閱讀!

          人人為我,我為人人,謝謝您的瀏覽,我們一起加油吧。

          HTML5 中,我們除了上一節(jié)講過的可以對圖形設(shè)置平移、旋轉(zhuǎn)、縮放,還可以給圖形添加陰影效果。添加陰影的時(shí)候只需要利用圖形上下文對象的幾個(gè)關(guān)于陰影繪制的屬性就可以實(shí)現(xiàn)啦。

          圖形陰影繪制的屬性



          shadowOffsetX 屬性和 shadowOffsetY 屬性分別用于設(shè)置陰影在 X 軸和 Y 軸的延伸距離,屬性值為正值表示向下或向右延伸,負(fù)值表示向上或向左延伸。

          shadowBlur 屬性用于設(shè)置陰影的模糊度,當(dāng)我們不希望圖形的陰影太清晰時(shí),可以使用這個(gè)屬性。屬性值為必須為正值,否則無效喲,一般設(shè)定在 0到10 之間。

          shadowColor 屬性值用于設(shè)置陰影的顏色,屬性值可以為任意標(biāo)準(zhǔn)的 CSS 顏色值,默認(rèn)顏色為黑色。

          給圖形繪制陰影

          例如給一個(gè)粉色的矩形繪制陰影。

          示例:

          繪制向右偏移 10 像素的陰影:

          <!DOCTYPE html>
              <html>
                  <head>
                      <meta charset="utf-8">
                      <title>HTML5學(xué)習(xí)(9xkd.com)</title>
                  </head>
                  <body>
                      <canvas id="mycanvas" width="300" height="200" style="border: 1px solid #000;"></canvas>
                      <script>
                          var can=document.getElementById("mycanvas");
                          var ctx=can.getContext("2d");
                          ctx.shadowOffsetX=10;
                          ctx.shadowBlur=10;
                          ctx.shadowColor="#000";
                          ctx.fillStyle="pink";  // 填充顏色
                          ctx.fillRect(50, 50, 150, 70);
                      </script>
                  </body>
              </html>    
          

          在瀏覽器中的演示效果:


          可以看到上圖中,陰影的位置向右偏移,如果想要陰影向左偏移,可以將shadowOffsetX 的值設(shè)置為負(fù)數(shù)。

          示例:

          如果要繪制向上偏移 20 像素的陰影,則不需要設(shè)置 shadowOffsetX,而是設(shè)置 shadowOffsetY 屬性,正值為向下偏移,負(fù)值為向上偏移:

          var can=document.getElementById("mycanvas");
          var ctx=can.getContext("2d");
          ctx.shadowOffsetY=-20;
          ctx.shadowBlur=10;
          ctx.shadowColor="rgba(0, 0, 0, 0.7)"; // 設(shè)置透明度
          ctx.fillStyle="pink";  // 填充顏色
          ctx.fillRect(50, 50, 150, 70);
          

          在瀏覽器中的演示效果:


          可以看到這張截圖中,矩形的陰影顏色要比上面示例中淡一點(diǎn)。這是因?yàn)槲覀冊诮o陰影設(shè)置顏色時(shí),指定了一個(gè)透明度,用到了 rgba() 函數(shù),函數(shù)中第四個(gè)參數(shù)用于設(shè)置透明度,值為 0~1 之間的小數(shù),0表示完全透明,1表示不透明。

          示例:

          給四個(gè)邊設(shè)置陰影:

          var can=document.getElementById("mycanvas");
          var ctx=can.getContext("2d");
          ctx.shadowBlur=10;
          ctx.shadowColor="rgba(0, 0, 0, 0.7)"; // 設(shè)置透明度
          ctx.fillStyle="pink";   // 填充顏色
          ctx.fillRect(50, 50, 150, 70);
          

          在瀏覽器中的演示效果:


          在實(shí)際應(yīng)用中,其實(shí)我們會(huì)經(jīng)常用到陰影,例如給導(dǎo)航欄添加陰影、給按鈕添加陰影、給圖片添加陰影等,這樣看上去就會(huì)更立體一些,增加層次感。

          了解更多可查看鏈接:https://www.9xkd.com/

          SS全稱“Cascading Style Sheet”,它的意思是“層疊樣式表”或“級聯(lián)樣式表”,CSS盒子模型是在網(wǎng)頁設(shè)計(jì)中用到的CSS技術(shù)中引用的一種思維模型。CSS盒子模型由內(nèi)容區(qū)、填充、邊框、空白邊組成。

          CSS盒子模型常見用途

          由于CSS盒子模型是CSS中的一個(gè)重要概念,每一個(gè)元素都可以當(dāng)作一個(gè)矩形的盒子,這個(gè)矩形盒子可以描述元素所占空間內(nèi)容。CSS盒子模型更方便了設(shè)計(jì)者對網(wǎng)頁設(shè)計(jì)的整體把控。

          CSS盒子模型繪制方法

          用億圖圖示繪制CSS盒子模型十分簡單,只需要找到指定模板即可,新手參考以下幾個(gè)步驟即可完成CSS盒子模型的繪制。

          第一步:下載“億圖圖示”軟件,啟動(dòng)軟件界面,登錄賬號開始操作。

          第二步:點(diǎn)擊搜索框輸入“CSS盒子模型”,尋找符合設(shè)計(jì)要求的CSS盒子模型模板,點(diǎn)擊“使用”打開CSS盒子模型模板。

          第三步:點(diǎn)擊操作區(qū)的CSS盒子模型,根據(jù)自己的需要,在模板上修改各層次的注釋,在上方操作區(qū)更改字體為黑體,并更改字體大小。

          第四步:雙擊CSS盒子模型中的“文本”方框,即可輸入CSS盒子模型中的文本,右側(cè)填充可以修改填充色、邊框顏色。

          第五步:完成CSS盒子模型制作之后,點(diǎn)擊左上角的“保存”等按鈕,本次選擇保存為讓圖片格式,修改好分辨率等參數(shù)之后,CSS盒子模型就可以存儲(chǔ)在電腦中。

          以上就是CSS盒子模型繪制方法的相關(guān)介紹。

          CSS盒子模型繪制軟件——億圖圖示

          當(dāng)有繪制CSS盒子模型的需求時(shí),選擇億圖圖示這款國產(chǎn)矢量繪圖軟件,讓用戶繪圖事半功倍。
          億圖圖示是一款與眾不同的矢量繪圖軟件,它采用了與其他繪圖軟件完全不同的思維模式設(shè)計(jì)開發(fā),在滿足了用戶基本的繪圖需求基礎(chǔ)上,開發(fā)了模板套用功能,讓繪圖的效率提高許多,同時(shí),在云存儲(chǔ)的加持下,億圖圖示用戶可以隨時(shí)隨地繪制作品。
          使用億圖圖示繪制CSS盒子模型,直接套用一個(gè)模板,在原有基礎(chǔ)上修改、添加需要的元素,提升繪圖效率。

          為什么選擇億圖圖示繪制CSS盒子模型?

          1、可靠軟件,值得信賴:億圖圖示經(jīng)過了九個(gè)大版本的升級,軟件可靠程度大幅增加,現(xiàn)在已經(jīng)擁有超過900萬用戶,龐大的使用群體是億圖圖示經(jīng)受住市場優(yōu)勝劣汰的體現(xiàn)。
          2、軟件資源庫強(qiáng)大,滿足繪圖需求:億圖圖示擁有數(shù)量龐大的矢量符號庫和模板庫,當(dāng)用戶繪圖時(shí)可以很輕松的找到自己需要的符號,即使符號很特殊在庫中找不到,用戶也可以自行繪制或者導(dǎo)入本地符號圖形、從庫外調(diào)用。
          3、先用后付,性價(jià)比高:億圖圖示為新用戶謀福利,凡是新注冊的億圖圖示賬戶,均可長期使用免費(fèi)基礎(chǔ)版本。當(dāng)有高級需求的時(shí)候,可以再升級購買會(huì)員版。


          主站蜘蛛池模板: 国产精品香蕉一区二区三区| 国精品无码一区二区三区左线| 狠狠综合久久AV一区二区三区| 久久久精品人妻一区二区三区四| 国产嫖妓一区二区三区无码| 奇米精品视频一区二区三区| 国产韩国精品一区二区三区| 国产Av一区二区精品久久| 久久99热狠狠色精品一区| 中文字幕色AV一区二区三区| 一区二区三区中文字幕| 国产日韩精品一区二区在线观看 | 精品香蕉一区二区三区| 久久久一区二区三区| 中文字幕一区二区三区日韩精品| 无码人妻精品一区二区蜜桃百度 | 日韩精品一区二区三区中文3d| 日韩精品一区二区三区色欲AV| 精品久久一区二区| 精品一区二区三区在线视频| 免费av一区二区三区| 无码人妻视频一区二区三区 | 日本不卡免费新一区二区三区| 久久精品无码一区二区app| 国产福利电影一区二区三区,日韩伦理电影在线福 | 日韩精品一区二区三区四区| 亚洲综合国产一区二区三区| 亚洲一区AV无码少妇电影☆| 中文字幕在线无码一区二区三区| 中文字幕AV一区中文字幕天堂| 国产在线无码视频一区二区三区 | 国产精品一区在线观看你懂的| 国产91精品一区二区麻豆亚洲| 红桃AV一区二区三区在线无码AV| 日本不卡一区二区三区| 精品视频一区二区三三区四区| 中字幕一区二区三区乱码| 国模一区二区三区| 中文字幕一区二区三区在线播放| 中文字幕精品一区二区精品 | 国产精品区AV一区二区|