- JScript code
//画五角星 function draw11(id) { var myCanvas = document.getElementById(id); var context = myCanvas.getContext("2d"); //创建五角星 var shape = {}; shape.star = function (l) { var rad1 = Math.sin(0.4 * Math.PI); //sin(72) var rad2 = Math.cos(0.4 * Math.PI); //cos(72) var rad3 = Math.sin(0.2 * Math.PI); //sin(36) var rad4 = Math.cos(0.2 * Math.PI); //cos(36) with (context) { moveTo(0, -l * rad1); lineTo(l * rad2, -10); lineTo(l + l * rad2, 0); lineTo(l * rad2 + 2 * l * rad2 * rad2, l * rad3); lineTo(l * rad4, 2 * l * rad1 * rad1 - l * rad1 + l * rad3); lineTo(0, 2 * l * rad1 * rad1 - l * rad1); lineTo(-l * rad4, 2 * l * rad1 * rad1 - l * rad1 + l * rad3); lineTo(-l * rad2 - 2 * l * rad2 * rad2, l * rad3); lineTo(-l - l * rad2, 0); lineTo(-l * rad2, 0); lineTo(0, -l * rad1); } } // context.translate(10, 10); context.beginPath(); //context.scale(1, 1); //context.rotate(5); //context.translate(-100, -100); shape.star(30); context.fillStyle = "red"; context.fill(); context.strokeStyle = "black"; context.stroke(); }
这是我在网上找的一个例子,下面那些scale和translate 我都去掉了,因为在一个canvas中重复画的时候会出现偏移。
我的目的是想得到一个五角星,在这个canvas的中间显示,不论我重复画多少次,都要在同一个位置。
求大神帮我看看
------解决方案--------------------
等着接分
------解决方案--------------------
接分来看看,怎么解决的。