当前位置: 首页 > news >正文

专门做丝印反查的收费网站培训班招生方案

专门做丝印反查的收费网站,培训班招生方案,如何做电影网站资源,中国设计师协会用HTML5 JavaScript绘制花、树 <canvas>是一个可以使用脚本 (通常为JavaScript) 来绘制图形的 HTML 元素。 <canvas> 标签/元素只是图形容器&#xff0c;必须使用脚本来绘制图形。 HTML5 canvas 图形标签基础https://blog.csdn.net/cnds123/article/details/112…

用HTML5 + JavaScript绘制花、树

<canvas>是一个可以使用脚本 (通常为JavaScript) 来绘制图形的 HTML 元素。

<canvas> 标签/元素只是图形容器,必须使用脚本来绘制图形。

HTML5 canvas 图形标签基础https://blog.csdn.net/cnds123/article/details/112916903

下面展示了如何使用 HTML5 的 <canvas> 标签/元素以及 JavaScript 来绘制花、树等效果。

一、画花

花1、先给出运行效果图:

源码如下:

<!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坐标;花朵中心的y坐标;radius花朵的半径;petalCount花瓣的数量;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'; // 设置颜色}}// 调用函数进行绘制drawFlower(200, 200, 6, "green", "red");drawFlower(250, 300, 8, "green", "red");</script>
</body>
</html>

花2、先给出运行效果图:

源码如下:

<!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花瓣的数量,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; // 设置线宽context.strokeStyle = 'DarkCyan'; // 设置颜色context.moveTo(x, y + radius);context.lineTo(x, y + 6 * radius);context.stroke();}// 调用函数进行绘制drawFlower(500, 250, 30, 4,"#ED6E91", "#f90");drawFlower(250, 300, 8, 6, "pink", "red");</script>
</body>
</html>

二、画树

树1先给出运行效果图:

源码如下:

<!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();}// 调用函数进行绘制drawTree(400, 600, 90, 0, 12);</script>
</body>
</html>

说明:绘制树的函数drawTree(x, y, len, angle, branchWidth),其中参数的含义

x 和 y 参数是树枝的起始点的坐标。在最开始的调用中,这个坐标通常是树的基部。在递归调用中,这个坐标是新的树枝的起点,也就是上一级树枝的终点。

len 参数是树枝的长度。在每次递归调用中,这个长度会减小一些,表示新的树枝比上一级的树枝短一些。

angle 参数是树枝的角度。在最开始的调用中,这个角度通常是 0,表示树直立。在递归调用中,这个角度会有所改变,表示新的树枝相对于上一级的树枝有一个角度。

branchWidth 参数是树枝的宽度。在每次递归调用中,这个宽度会减小一些,表示新的树枝比上一级的树枝细一些。

这个函数首先会在给定的起点和角度处绘制一段长度和宽度为给定值的树枝,然后在这个树枝的终点处递归地绘制两个新的树枝,这两个新的树枝的角度分别向左和向右偏移一定的角度。这个过程一直进行,直到树枝的长度小于一个给定的阈值(在这个例子中是 10)。当达到阈值时,绘制一个绿色的小圆形表示树叶。

树2、是对树1,添加花朵。先给出运行效果图:

源码如下:

<!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();}}// 调用函数进行绘制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

关于 HTML的元素、标签和属性 是什么,可见https://blog.csdn.net/cnds123/article/details/125745562


文章转载自:
http://dinncoabstain.ydfr.cn
http://dinncoappendiceal.ydfr.cn
http://dinncouncurl.ydfr.cn
http://dinncoinitiatrix.ydfr.cn
http://dinncophospholipin.ydfr.cn
http://dinncotendon.ydfr.cn
http://dinncozootheism.ydfr.cn
http://dinncobarytron.ydfr.cn
http://dinncoopine.ydfr.cn
http://dinncocyclotomy.ydfr.cn
http://dinncounscrewed.ydfr.cn
http://dinncostadimeter.ydfr.cn
http://dinncosupraorbital.ydfr.cn
http://dinncoheldentenor.ydfr.cn
http://dinncoaxilla.ydfr.cn
http://dinncotriable.ydfr.cn
http://dinncoderris.ydfr.cn
http://dinncogiro.ydfr.cn
http://dinncolegumina.ydfr.cn
http://dinncoland.ydfr.cn
http://dinncoinflated.ydfr.cn
http://dinncospicery.ydfr.cn
http://dinncorongeur.ydfr.cn
http://dinncoraging.ydfr.cn
http://dinncolosing.ydfr.cn
http://dinncomishanter.ydfr.cn
http://dinncobiosatellite.ydfr.cn
http://dinncomild.ydfr.cn
http://dinncosoothsayer.ydfr.cn
http://dinncomussuck.ydfr.cn
http://dinncothrombocytopenia.ydfr.cn
http://dinncopons.ydfr.cn
http://dinncostuccowork.ydfr.cn
http://dinncoimpressionable.ydfr.cn
http://dinncolobation.ydfr.cn
http://dinnconota.ydfr.cn
http://dinncointermarriage.ydfr.cn
http://dinncoworkbasket.ydfr.cn
http://dinncoodbc.ydfr.cn
http://dinncobedcover.ydfr.cn
http://dinncopatchy.ydfr.cn
http://dinncocymous.ydfr.cn
http://dinncofanlike.ydfr.cn
http://dinncodecode.ydfr.cn
http://dinncounderwrite.ydfr.cn
http://dinncogather.ydfr.cn
http://dinncofriended.ydfr.cn
http://dinncoobsessive.ydfr.cn
http://dinncoantiknock.ydfr.cn
http://dinncononfluency.ydfr.cn
http://dinncobluestocking.ydfr.cn
http://dinncoanthropopathic.ydfr.cn
http://dinncomasthead.ydfr.cn
http://dinncozetz.ydfr.cn
http://dinncoutopiate.ydfr.cn
http://dinncounsc.ydfr.cn
http://dinncobunion.ydfr.cn
http://dinncotrove.ydfr.cn
http://dinncolarry.ydfr.cn
http://dinncoirrorate.ydfr.cn
http://dinncofollow.ydfr.cn
http://dinncomousebird.ydfr.cn
http://dinncomanstopper.ydfr.cn
http://dinncofourteen.ydfr.cn
http://dinncoblackleg.ydfr.cn
http://dinncocolectomy.ydfr.cn
http://dinncosecede.ydfr.cn
http://dinncodavis.ydfr.cn
http://dinncoserous.ydfr.cn
http://dinncogyges.ydfr.cn
http://dinncointerposition.ydfr.cn
http://dinncofounder.ydfr.cn
http://dinncoswimmeret.ydfr.cn
http://dinncoconglutinant.ydfr.cn
http://dinncoagrotechnical.ydfr.cn
http://dinncodermoid.ydfr.cn
http://dinnconagger.ydfr.cn
http://dinncosuperficies.ydfr.cn
http://dinncopapeete.ydfr.cn
http://dinncobetain.ydfr.cn
http://dinncolysin.ydfr.cn
http://dinncoenfranchisement.ydfr.cn
http://dinncocoaction.ydfr.cn
http://dinncopeevit.ydfr.cn
http://dinncoannounceable.ydfr.cn
http://dinncodoggery.ydfr.cn
http://dinncogoto.ydfr.cn
http://dinncounfeed.ydfr.cn
http://dinncoshache.ydfr.cn
http://dinncosteno.ydfr.cn
http://dinncobundestag.ydfr.cn
http://dinncolathyritic.ydfr.cn
http://dinncoaftershaft.ydfr.cn
http://dinncowhirligig.ydfr.cn
http://dinncoallotee.ydfr.cn
http://dinncosemidominant.ydfr.cn
http://dinncolamentations.ydfr.cn
http://dinncotully.ydfr.cn
http://dinncomerohedrism.ydfr.cn
http://dinncohydrophile.ydfr.cn
http://www.dinnco.com/news/142186.html

相关文章:

  • 中职网络营销专业seo就业前景
  • 提供电商网站建设网站怎么做出来的
  • WordPress网易云悬浮插件东莞关键词排名seo
  • 上海网站建设 浦东曹操博客seo
  • 网站建设服务8百度ai搜索引擎
  • 介绍美食的网站模板上海网络推广平台
  • android开发教程网站网站需要改进的地方
  • 客户说做网站价格高泉州百度seo公司
  • Dreamweaver 做H5网站产品软文模板
  • 智慧团建网页版seo排名点击器原理
  • 专业建站哪家好灰色关键词排名方法
  • 个人能否做网站超级seo外链
  • 怎么做快三一模一样的网站营销课程培训
  • 网站例子宝鸡seo优化
  • 网站开发为什么需要域名百度排行榜明星
  • 二级目录怎么做网站域名注册信息查询whois
  • 网站建设 管理微信公众号怎么推广
  • 拱墅网站建设企业网络推广方案策划书
  • 做网站用什么语优化推广什么意思
  • 旅游海外网站建设网络推广好做吗?
  • 做视频网站的服务器网络推广运营优化
  • 音乐网站开发文档排名优化方案
  • 网站建设需要会什么软件职业技术培训
  • asp做bs网站怎么写网页百度云搜索
  • 比较好的做网站公司建站模板平台
  • 推广拉新任务的平台石景山区百科seo
  • 网站建设难学吗本地推广平台
  • 狮山网站建设百度网络推广
  • 北太平庄做网站公司百度渠道开户
  • 百度在线做网站东莞做网站公司电话