国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

訂閱號(hào)欄目里做微網(wǎng)站網(wǎng)站排名靠前

訂閱號(hào)欄目里做微網(wǎng)站,網(wǎng)站排名靠前,哪個(gè)網(wǎng)站做任務(wù)可以賺錢,虹口做網(wǎng)站價(jià)格用HTML5 JavaScript繪制花、樹 <canvas>是一個(gè)可以使用腳本 (通常為JavaScript) 來繪制圖形的 HTML 元素。 <canvas> 標(biāo)簽/元素只是圖形容器&#xff0c;必須使用腳本來繪制圖形。 HTML5 canvas 圖形標(biāo)簽基礎(chǔ)https://blog.csdn.net/cnds123/article/details/112…

用HTML5 + JavaScript繪制花、樹

<canvas>是一個(gè)可以使用腳本 (通常為JavaScript) 來繪制圖形的 HTML 元素。

<canvas> 標(biāo)簽/元素只是圖形容器,必須使用腳本來繪制圖形。

HTML5 canvas 圖形標(biāo)簽基礎(chǔ)https://blog.csdn.net/cnds123/article/details/112916903

下面展示了如何使用 HTML5 的 <canvas> 標(biāo)簽/元素以及 JavaScript 來繪制花、樹等效果。

一、畫花

花1、先給出運(yùn)行效果圖:

源碼如下:

<!DOCTYPE html>
<html>
<head><title>Canvas繪制花朵</title><style>canvas {border: 1px solid black;}</style>
</head>
<body><canvas id="myCanvas" width="400" height="400"></canvas><script>var canvas = document.getElementById("myCanvas");var context = canvas.getContext("2d");// 繪制花朵:花朵中心的x坐標(biāo);花朵中心的y坐標(biāo);radius花朵的半徑;petalCount花瓣的數(shù)量;petalColor花瓣的顏色;centerColor花朵中心的顏色function drawFlower(x, y, petalCount, petalColor, centerColor) {// 繪制花朵的中心context.beginPath();context.arc(x, y, 10, 0, Math.PI * 2, true);context.fillStyle = centerColor;context.fill();var angle = (Math.PI * 2) / petalCount;for (var i = 0; i < petalCount; i++) {context.beginPath();var startX = x + Math.cos(angle * i) * 10;var startY = y + Math.sin(angle * i) * 10;var cp1X = x + Math.cos(angle * i - angle / 4) * 50;var cp1Y = y + Math.sin(angle * i - angle / 4) * 50;var cp2X = x + Math.cos(angle * i + angle / 4) * 50;var cp2Y = y + Math.sin(angle * i + angle / 4) * 50;context.moveTo(startX, startY);//繪制了花瓣context.bezierCurveTo(cp1X, cp1Y, cp2X, cp2Y, startX, startY);context.fillStyle = petalColor;context.fill();//花徑context.moveTo(x, y + 10);context.lineTo(x, y + 60);context.stroke();context.strokeStyle = 'DarkCyan'; // 設(shè)置顏色}}// 調(diào)用函數(shù)進(jìn)行繪制drawFlower(200, 200, 6, "green", "red");drawFlower(250, 300, 8, "green", "red");</script>
</body>
</html>

花2、先給出運(yùn)行效果圖:

源碼如下:

<!DOCTYPE html>
<html>
<head><title>Canvas繪制花朵</title><style>canvas {border: 1px solid black;}</style>
</head>
<body><canvas id="myCanvas" width="800" height="600"></canvas><script>// 繪制花朵:x和y定義了花朵中心的位置,radius花朵的半徑,petalCount花瓣的數(shù)量,petalColor花瓣的顏色,centerColor花朵中心的顏色。function drawFlower(x, y, radius,petalCount, petalColor, centerColor) {var canvas = document.getElementById("myCanvas");var context = canvas.getContext("2d");context.lineWidth = 2;context.strokeStyle = "pink";//花瓣context.fillStyle = petalColor;for (var i = 0; i < petalCount; i++) {context.beginPath();var angle = (2 * Math.PI / petalCount) * i;var petalX = x + Math.cos(angle) * radius;var petalY = y + Math.sin(angle) * radius;context.arc(petalX, petalY, radius, 0, 2 * Math.PI);context.stroke();context.fill();}//花蕊context.beginPath();context.fillStyle = centerColor;context.arc(x, y, radius, 0, 2 * Math.PI);context.stroke();context.fill();//葉子context.beginPath();context.fillStyle = "green";context.arc(x, y + 3 * radius, radius*1.5, 0, Math.PI, false);context.closePath();context.fill();context.beginPath();context.fillStyle = "white";  // 使用白色來覆蓋原有的大半圓,形成月牙形context.arc(x, y + 2.7 * radius, radius*1.5, 0, Math.PI, false);context.closePath();context.fill();//花徑context.beginPath();context.lineWidth = radius/10; // 設(shè)置線寬context.strokeStyle = 'DarkCyan'; // 設(shè)置顏色context.moveTo(x, y + radius);context.lineTo(x, y + 6 * radius);context.stroke();}// 調(diào)用函數(shù)進(jìn)行繪制drawFlower(500, 250, 30, 4,"#ED6E91", "#f90");drawFlower(250, 300, 8, 6, "pink", "red");</script>
</body>
</html>

二、畫樹

樹1、先給出運(yùn)行效果圖:

源碼如下:

<!DOCTYPE html>
<html>
<head><title>Canvas繪制樹</title><style>canvas {border: 1px solid black;}</style>
</head>
<body><canvas id="myCanvas" width="800" height="600"></canvas><script>var canvas = document.getElementById("myCanvas");var context = canvas.getContext("2d");// 繪制樹function drawTree(x, y, len, angle, branchWidth) {context.beginPath();context.save();context.strokeStyle = "#8B4513";context.fillStyle = "brown";context.lineWidth = branchWidth;context.translate(x, y);context.rotate(angle * Math.PI / 180);context.moveTo(0, 0);context.lineTo(0, -len);context.stroke();if (len < 10) {context.beginPath();context.arc(0, -len, 5, 0, Math.PI * 2, false);  // 樹葉context.fillStyle = "green";context.fill();context.restore();return;}drawTree(0, -len, len * 0.8, angle - 15, branchWidth * 0.8);drawTree(0, -len, len * 0.8, angle + 15, branchWidth * 0.8);context.restore();}// 調(diào)用函數(shù)進(jìn)行繪制drawTree(400, 600, 90, 0, 12);</script>
</body>
</html>

說明:繪制樹的函數(shù)drawTree(x, y, len, angle, branchWidth),其中參數(shù)的含義

x 和 y 參數(shù)是樹枝的起始點(diǎn)的坐標(biāo)。在最開始的調(diào)用中,這個(gè)坐標(biāo)通常是樹的基部。在遞歸調(diào)用中,這個(gè)坐標(biāo)是新的樹枝的起點(diǎn),也就是上一級(jí)樹枝的終點(diǎn)。

len 參數(shù)是樹枝的長度。在每次遞歸調(diào)用中,這個(gè)長度會(huì)減小一些,表示新的樹枝比上一級(jí)的樹枝短一些。

angle 參數(shù)是樹枝的角度。在最開始的調(diào)用中,這個(gè)角度通常是 0,表示樹直立。在遞歸調(diào)用中,這個(gè)角度會(huì)有所改變,表示新的樹枝相對(duì)于上一級(jí)的樹枝有一個(gè)角度。

branchWidth 參數(shù)是樹枝的寬度。在每次遞歸調(diào)用中,這個(gè)寬度會(huì)減小一些,表示新的樹枝比上一級(jí)的樹枝細(xì)一些。

這個(gè)函數(shù)首先會(huì)在給定的起點(diǎn)和角度處繪制一段長度和寬度為給定值的樹枝,然后在這個(gè)樹枝的終點(diǎn)處遞歸地繪制兩個(gè)新的樹枝,這兩個(gè)新的樹枝的角度分別向左和向右偏移一定的角度。這個(gè)過程一直進(jìn)行,直到樹枝的長度小于一個(gè)給定的閾值(在這個(gè)例子中是 10)。當(dāng)達(dá)到閾值時(shí),繪制一個(gè)綠色的小圓形表示樹葉。

樹2、是對(duì)樹1,添加花朵。先給出運(yùn)行效果圖:

源碼如下:

<!DOCTYPE html>
<html>
<head><title>Canvas繪制樹</title><style>canvas {border: 1px solid black;}</style>
</head>
<body><canvas id="myCanvas" width="800" height="600"></canvas><script>var canvas = document.getElementById("myCanvas");var context = canvas.getContext("2d");// 繪制樹function drawTree(x, y, len, angle, branchWidth) {context.beginPath();context.save();context.strokeStyle = "#8B4513";context.fillStyle = "brown";context.lineWidth = branchWidth;context.translate(x, y);context.rotate(angle * Math.PI / 180);context.moveTo(0, 0);context.lineTo(0, -len);context.stroke();if (len < 10) {context.beginPath();context.arc(0, -len, 5, 0, Math.PI * 2, false);  // 樹葉context.fillStyle = "green";context.fill();context.restore();return;}drawTree(0, -len, len * 0.8, angle - 15, branchWidth * 0.8);drawTree(0, -len, len * 0.8, angle + 15, branchWidth * 0.8);context.restore();}// 繪制花朵function drawFlower(x, y, petalCount, petalColor, centerColor) {// 繪制花朵的中心context.beginPath();context.arc(x, y, 8, 0, Math.PI * 2, true);context.fillStyle = centerColor;context.fill();var angle = (Math.PI * 2) / petalCount;for (var i = 0; i < petalCount; i++) {context.beginPath();var startX = x + Math.cos(angle * i) * 10;var startY = y + Math.sin(angle * i) * 10;var cp1X = x + Math.cos(angle * i - angle / 4) * 30;var cp1Y = y + Math.sin(angle * i - angle / 4) * 30;var cp2X = x + Math.cos(angle * i + angle / 4) * 30;var cp2Y = y + Math.sin(angle * i + angle / 4) * 30;context.moveTo(startX, startY);context.bezierCurveTo(cp1X, cp1Y, cp2X, cp2Y, startX, startY);context.fillStyle = petalColor;context.fill();}}// 調(diào)用函數(shù)進(jìn)行繪制drawTree(400, 600, 90, 0, 12);drawFlower(400, 250, 6, "DeepPink", "red");drawFlower(250, 400, 6, "DeepPink", "red");drawFlower(550, 400, 6, "DeepPink", "red");</script>
</body>
</html>

附錄

更多例子可見:https://blog.csdn.net/cnds123/article/details/112392014

關(guān)于 HTML的元素、標(biāo)簽和屬性 是什么,可見https://blog.csdn.net/cnds123/article/details/125745562

http://aloenet.com.cn/news/31335.html

相關(guān)文章:

  • 網(wǎng)絡(luò)營銷專業(yè)建議百度seo優(yōu)化收費(fèi)標(biāo)準(zhǔn)
  • 兩學(xué)一做教育考試網(wǎng)站微信小程序怎么開通
  • WordPress微信密碼seo初級(jí)入門教程
  • 物聯(lián)網(wǎng)型網(wǎng)站開發(fā)企業(yè)網(wǎng)站建設(shè)服務(wù)
  • 做網(wǎng)站買域名網(wǎng)絡(luò)營銷策劃方案3000字
  • 建筑室內(nèi)設(shè)計(jì)公司排名seo人工智能
  • 中國建設(shè)門戶網(wǎng)站紀(jì)念幣看seo
  • 做網(wǎng)站一般收取多少錢國際重大新聞
  • 深圳市城鄉(xiāng)和建設(shè)局網(wǎng)站首頁貼吧推廣
  • 有沒有免費(fèi)的網(wǎng)站推銷產(chǎn)品如何做網(wǎng)絡(luò)推廣
  • 成都市 網(wǎng)站建設(shè)福州短視頻seo公司
  • 深圳有做網(wǎng)站公司打廣告去哪個(gè)平臺(tái)
  • 深圳手機(jī)網(wǎng)站制作公司全網(wǎng)搜索軟件
  • 一個(gè)人能建設(shè)一個(gè)公司網(wǎng)站嗎短視頻seo是什么
  • 南山網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷培訓(xùn)
  • 網(wǎng)站建設(shè)經(jīng)理網(wǎng)站關(guān)鍵詞在哪里看
  • 福建交通建設(shè)網(wǎng)站58黃頁網(wǎng)推廣公司
  • 桂林哪里可以做網(wǎng)站百度推廣區(qū)域代理
  • 招聘網(wǎng)站有哪些平臺(tái)洛陽網(wǎng)站建設(shè)
  • 第三方網(wǎng)站下載素材是怎么做南寧優(yōu)化推廣服務(wù)
  • 注冊(cè)個(gè)網(wǎng)站要多少錢跟我學(xué)seo從入門到精通
  • 怎么增加網(wǎng)站訪問量網(wǎng)站優(yōu)化培訓(xùn)學(xué)校
  • 網(wǎng)站 相對(duì)路徑國際軍事形勢最新消息
  • 甘肅城鄉(xiāng)建設(shè)局網(wǎng)站有什么引流客源的軟件
  • 做論壇和做網(wǎng)站有什么區(qū)別搜資源的搜索引擎
  • 網(wǎng)站視頻封面怎么做百度客服電話是多少
  • 上海網(wǎng)站建設(shè)公司 紅威網(wǎng)站制作免費(fèi)
  • 可視化導(dǎo)航網(wǎng)站源碼百度的排名規(guī)則詳解
  • 河南營銷網(wǎng)站建設(shè)聯(lián)系方式搜索引擎有哪些分類
  • 58同城煙臺(tái)網(wǎng)站建設(shè)國內(nèi)營銷推廣渠道