博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
html5 相同形状的图形进行循环
阅读量:5345 次
发布时间:2019-06-15

本文共 5012 字,大约阅读时间需要 16 分钟。

       现在在学习canvas,是html5中扮演者一个非常重要的角色,可以画出很多奇异的,带有diy的图形。。。。

这里,我设计了几个:

这次,我将界面弄的比较花哨,因为我在同一个画布上面画了很多个形状!

 

  <!DOCTYPE html>
  <html>
  <head>
  <title></title>
  <meta charset="utf-8">
  <style type="text/css">
   
   
   
  </style>
  <script type="text/javascript">
  var color = new Array("red", "grey", "blue", "yellow", "orange", "green", "purple", "black", "white", "#0f0");
 

window.onload = function () {

得到画布

  var canvas = document.getElementById("myCanvas");
  var context = canvas.getContext("2d");
   
   开始画
  context.beginPath();
  context.lineWidth = 40;
  context.strokeStyle = "#f00";
  context.moveTo(40, 40);
  context.lineTo(160, 160);
 

context.stroke();

结束画

  context.closePath();
   
   
  context.beginPath();
  context.lineWidth = 40;
  context.strokeStyle = "#00f";
  context.moveTo(160, 40);
  context.lineTo(40, 160);
  context.stroke();
  context.closePath();
   
   在这里我们应用到渐变
 

var fillcolordiagonal = context.createLinearGradient(60, 400, 500, 40);

 

  fillcolordiagonal.addColorStop(0, "blue");
  fillcolordiagonal.addColorStop(0.1, "black");
  fillcolordiagonal.addColorStop(0.2, "darkslategrey");
  fillcolordiagonal.addColorStop(0.3, "black");
  fillcolordiagonal.addColorStop(0.4, "darkslategrey");
  fillcolordiagonal.addColorStop(0.5, "black");
  fillcolordiagonal.addColorStop(0.6, "darkslategrey");
  fillcolordiagonal.addColorStop(0.7, "red");
  fillcolordiagonal.addColorStop(0.8, "darkslategrey");
  fillcolordiagonal.addColorStop(0.9, "black");
   
  context.fillStyle = fillcolordiagonal;
   
   
  context.fillRect(0, 590, 1300, 20);
  context.stroke();
  var fillcolortext = context.createLinearGradient(100, 100, 100, 50);
  fillcolortext.addColorStop(0.2, "blue");
  fillcolortext.addColorStop(0.4, "purple");
  fillcolortext.addColorStop(0.6, "green");
  fillcolortext.addColorStop(0.8, "red");
  context.beginPath();
  context.fillStyle = fillcolortext;
  context.font = "30px verdana red";
  context.textBaseline = "top";
  // context.fontcolor("red");
  context.fillText("Welcome to HTML5", 10, 200);
   
  context.fill();
  // context.stroke();
   
  var fillcolortext = context.createLinearGradient(100, 100, 100, 50);
  fillcolortext.addColorStop(0.2, "red");
  fillcolortext.addColorStop(0.4, "purple");
  fillcolortext.addColorStop(0.6, "green");
  fillcolortext.addColorStop(0.8, "red");
  context.beginPath();
  context.fillStyle = fillcolortext;
  context.font = "30px verdana";
  context.textBaseline = "top";
  // context.fontcolor("red");
  context.fillText("welcome to my World", 10, 230);
   
  context.fill();
  // context.stroke();
   
  var fillcolortext = context.createLinearGradient(100, 100, 100, 50);
  fillcolortext.addColorStop(0.2, "blue");
  fillcolortext.addColorStop(0.4, "purple");
  fillcolortext.addColorStop(0.6, "green");
  fillcolortext.addColorStop(0.8, "red");
  context.beginPath();
  context.fillStyle = fillcolortext;
  context.font = "35px verdana red";
  context.textBaseline = "top";
  // context.fontcolor("red");
  context.fillText("In fact,i don't know html5,but i like it yet!", 100, 610);
  context.fill();
  context.stroke();
   
   
  context.beginPath();
  var fillcolorradial = context.createRadialGradient(1050, 150, 0, 1050, 150, 200);
  fillcolorradial.addColorStop(0, "darkslategrey");
   
  fillcolorradial.addColorStop(0.2, "black");
  fillcolorradial.addColorStop(0.4, "darkslategrey");
   
  fillcolorradial.addColorStop(0.6, "black");
   
   
  fillcolorradial.addColorStop(0.8, "darkslategrey");
  fillcolorradial.addColorStop(0.9, "black");
  context.fillStyle = fillcolorradial;
  // context.rect(1050,150,150,150);
  context.arc(1050, 150, 150, 0, Math.PI * 2, true);
  context.fill();
  //context.stroke();
   
 

for (var i = 0; i < 105; i++) {

得到随机数,这样就可以随机颜色与位置了

  var srandX = parseInt(Math.random() * 10000 % 1300);
  var srandY = parseInt(Math.random() * 1000 % 600);
  var srandColor = parseInt(Math.random() * 10);
  context.beginPath();
  context.fillStyle = color[srandColor];
   
  // context.arc(30+100*i,560,15,0,Math.PI*2,true);
  context.arc(srandX, srandY, 15, 0, Math.PI * 2, true);
  context.fill();
  context.closePath();
  }
   
 

for (var i = 0; i < 7; i++) {

在这里我们开始画最大的那7个围绕着一个中心旋转的矩形

  var srandColor = parseInt(Math.random() * 10);
 

context.beginPath();

得到一个新的原点

 

context.translate(570, 250);

旋转的角度

 

context.rotate(40 * Math.PI / 180);

返回到原点

  context.translate(-570, -250);
   
 

context.strokeStyle = color[srandColor];

设置矩形的位置与大小

 

context.strokeRect(360, 200, 420, 100);

 

  context.stroke();
 

}

上面的旋转类似

 

  for (var i = 0; i < 6; i++) {
  var srandColor = parseInt(Math.random() * 10);
  context.beginPath();
  context.translate(820, 750);
  context.rotate(30 * Math.PI / 180);
  context.translate(-820, -750);
   
  context.strokeStyle = color[srandColor];
  context.strokeRect(790, 730, 60, 40);
  context.stroke();
 

}

同上

  for (var i = 0; i < 6; i++) {
  var srandColor = parseInt(Math.random() * 10);
  context.beginPath();
  context.translate(1200, 720);
  context.rotate(30 * Math.PI / 180);
  context.translate(-1200, -720);
   
  context.strokeStyle = color[srandColor];
  context.strokeRect(1300, 800, 100, 70);
  // context.stroke();
  }
  }
   
  </script>
  </head>
  <body>
  <canvas width="1300" height="800" id="myCanvas" style="background-color: darkslategrey"></canvas>
   
  </body>
  </html>

 

 

 

 

 

转载于:https://www.cnblogs.com/Catherine-Brain/p/3434732.html

你可能感兴趣的文章
线性表
查看>>
crawlSpider全站数据爬取
查看>>
iOS消息推送机制
查看>>
leetcode - Reverse Linked List II
查看>>
深入理解HashMap底层实现原理
查看>>
Session和Cookie
查看>>
python学习笔记:第20天 多继承、MRO C3算法
查看>>
开题报告范文
查看>>
AVD之PANIC: Could not open ***
查看>>
AspNet Core Api Restful +Swagger 实现微服务之旅(四)
查看>>
Vue组件模板形式实现对象数组数据循环为树形结构
查看>>
四叉树的js实现
查看>>
关于游戏
查看>>
X.Org可能将失去它的域名x.org
查看>>
activated钩子函数
查看>>
转载:开发者需知的10类工具
查看>>
避免明文保存用户密码
查看>>
第二周冲刺_第四天总结
查看>>
软件工程总结报告
查看>>
swift中判断设备是否打开定位
查看>>