欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HTML5作业2绘画h5标志

程序员文章站 2022-04-19 21:27:29
...

分析
1定位出整个页面背景区域,并实现背景光束
2使用画布定义logo样式,并画出盾牌的背景
3画出盾牌的右半边
4画出浅橘色区域
5画出“5”的左半边
6画出“5”的右半边
7在盾牌上方添加“HTML”字样
源代码如下

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>HTML5 Logo</title>
		<style type="text/css">
			body{
			    margin: 0;padding: 0;
			}
			div{
			    position: absolute;
			}
			/*给整个容器设置样式*/
			.bg{
			    width: 800px;  height: 600px;  background: #f2f2f2;   overflow: hidden;
			}
			/*给beam元素设置样式*/
			.beam{
			    width: 1600px;   height: 20px;  background: #fff;  top: 290px;  left: -400px;
			}
			#box{
				z-index: 2;
				margin-left: 260px;
				margin-top: 190px;
			}
			h1{
				z-index: 3;
				font-size: 60px;
				position: absolute;
				margin-left: 299px;
				margin-top: 111px;
			}
		</style>
		<script type="text/javascript">
			function draw() {
				var c = document.getElementById("firstcancas");
				var cxt = c.getContext("2d");
				//红色区域,及其坐标   
				cxt.fillStyle = "#E34C26";
				cxt.beginPath();
				cxt.moveTo(39, 250);
				cxt.lineTo(17, 0);
				cxt.lineTo(262, 0);
				cxt.lineTo(239, 250);
				cxt.lineTo(139, 278);
				cxt.closePath();
				cxt.fill();
				
				// 盾牌的右半边
				cxt.fillStyle = "#F06529";
				cxt.beginPath();
				cxt.moveTo(139, 257);
				cxt.lineTo(220, 234);
				cxt.lineTo(239, 20);
				cxt.lineTo(139, 20);
				cxt.closePath();
				cxt.fill();

				// 左半边5
				cxt.fillStyle = "#EBEBEB";
				cxt.beginPath();
				cxt.moveTo(139, 113);
				cxt.lineTo(98, 113);
				cxt.lineTo(96, 82);
				cxt.lineTo(139, 82);
				cxt.lineTo(139, 51);
				cxt.lineTo(62, 51);
				cxt.lineTo(70, 144);
				cxt.lineTo(139, 144);
				cxt.closePath();
				cxt.fill();

				cxt.beginPath();
				cxt.moveTo(139, 193);
				cxt.lineTo(105, 184);
				cxt.lineTo(103, 159);
				cxt.lineTo(76, 159);
				cxt.lineTo(76, 207);
				cxt.lineTo(139, 225);
				cxt.closePath();
				cxt.fill();
				
				// 右半边5
				cxt.fillStyle = "#fff";
				cxt.beginPath();
				cxt.moveTo(139, 51);
				cxt.lineTo(209, 51);
				cxt.lineTo(207, 82);
				cxt.lineTo(139, 82);
				cxt.closePath();
				cxt.fill();
				

				
				cxt.beginPath();
				cxt.moveTo(139, 113);
				cxt.lineTo(205, 113);
				cxt.lineTo(199, 207);
				cxt.lineTo(139, 225);
				cxt.lineTo(139, 193);
				cxt.lineTo(165, 184);
				cxt.lineTo(170, 144);
				cxt.lineTo(139, 144);
				
				cxt.closePath();
				cxt.fill();
			}
		</script>

	</head>
	<body onLoad="draw();">
		<h1>HTML</h1>
		<div class="bg"><!-- logo最外层的盒子div -->
		          <div class="beam" style="transform:rotate(5deg)"></div>
		          <div class="beam" style="transform:rotate(15deg)"></div>
		          <div class="beam" style="transform:rotate(25deg)"></div>
		          <div class="beam" style="transform:rotate(35deg)"></div>
		          <div class="beam" style="transform:rotate(45deg)"></div>
		          <div class="beam" style="transform:rotate(55deg)"></div>
		          <div class="beam" style="transform:rotate(65deg)"></div>
		          <div class="beam" style="transform:rotate(75deg)"></div>
		          <div class="beam" style="transform:rotate(85deg)"></div>
		          <div class="beam" style="transform:rotate(95deg)"></div>
		          <div class="beam" style="transform:rotate(105deg)"></div>
		          <div class="beam" style="transform:rotate(115deg)"></div>
		          <div class="beam" style="transform:rotate(125deg)"></div>
		          <div class="beam" style="transform:rotate(135deg)"></div>
		          <div class="beam" style="transform:rotate(145deg)"></div>
		          <div class="beam" style="transform:rotate(155deg)"></div>
		          <div class="white beam" style="transform:rotate(165deg)"></div>
		          <div class="white beam" style="transform:rotate(175deg)"></div>
		        
		        
		    </div>
		<div id="box">
			<canvas id="firstcancas"  width="600" height="400"></canvas>
		</div>
		
	</body>
</html>

结果如图
HTML5作业2绘画h5标志