用HTML5绘制的一个星空特效图

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>用HTML5绘制的一个星空特效图</title>
 <style>
canvas{
 display: block;border:1px dotted skyblue;
}
 body{
  font-family: 微软雅黑;
 }

 </style>
</head>
<body>
 <h1>用HTML5绘制的一个星空特效图</h1> 
<canvas id="canvas" width="500" height="400">
 
</canvas>
<script>
 var nimo={};
window.onload=function(){
 nimo.canvas=document.getElementById('canvas');
 nimo.context=nimo.canvas.getContext('2d');

 
 nimo.starBgImg=new Image();
 nimo.starBgImg.src='http://sandbox.runjs.cn/uploads/rs/167/znddwgfj/star-bg.jpg';
 nimo.starBgImg.onload=function(){

  //填充星星背景
  nimo.statBg=nimo.context.createPattern(nimo.starBgImg,'repeat')  
  nimo.context.rect(0,0,nimo.canvas.width,nimo.canvas.height); 
  nimo.context.fillStyle=nimo.statBg;
  nimo.context.fill();

  //绘制月亮轮廓
  nimo.context.beginPath();
  nimo.context.arc(200,200,100,0.6*Math.PI,1.3*Math.PI);
  nimo.context.bezierCurveTo(140,119,93,224,169,295) 

  //填充月亮轮廓和设置投影
  nimo.context.shadowColor="blue";
  nimo.context.shadowBlur=3;  
  nimo.context.strokeStyle="blue";
  nimo.context.stroke();

  //填充放射渐变给月亮
  nimo.radialGradient=nimo.context.createRadialGradient(150,200,0,150,200,50);  
  nimo.radialGradient.addColorStop(0,'white')
  nimo.radialGradient.addColorStop(1,'#999')
  nimo.context.fillStyle=nimo.radialGradient;
  nimo.context.fill()

  //绘制月亮的研究和嘴巴    
  nimo.context.shadowColor="white";
  nimo.context.beginPath();
  nimo.context.moveTo(110,173);
  nimo.context.lineTo(114,173);
  nimo.context.moveTo(119,173);
  nimo.context.lineTo(123,173);  
  nimo.context.stroke();

  nimo.context.beginPath();
  nimo.context.arc(116,183,2,0,2*Math.PI);
  nimo.context.stroke();
  nimo.context.shadowColor='transparent';
  nimo.context.font="14px 微软雅黑"  
  nimo.context.fillText('好挫的月亮!',300,300)
 }
 
 
}

</script>
<p>
 demo by <a href="http://js.alixixi.com/">js.alixixi.com</a>
</p>
</body>
</html>

 

转载于:https://www.cnblogs.com/suway/p/6681892.html

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值