我们可以通过新的HTML5画布(Canvas)标签添加一个画布到网页中,以下代码用于定义一个 800 x 600 大小的画布。
再通过以下 JavaScript 代码控制在画布中的绘图。
// 通过ID取画布元素 var mc = document.getElementById("MyCanvas"); var ctx = null; // 图形大小 var circleR = 300; // 超时定义 var timeout = 0; // 间隔度数(45, 15, 9, 3) var often = 9; if(mc.getContext) { // 创建 context 对象 ctx = mc.getContext("2d"); // 先清画布 ctx.clearRect(0, 0, mc.width, mc.height); // 坐标点移至画布中心 ctx.translate(mc.width / 2, mc.height / 2); // 绘制每条直线 for (var i = 0; i < 360 / often; i++) { for (var a = -45; a <= 45; a+=often) { // 每0.1秒绘制一条 setTimeout("drawLineOnce("+a+");", 10 * timeout); timeout++; } } } function drawLineOnce(a) { // 开始路径 ctx.beginPath(); // 直线起始点 ctx.moveTo(0, circleR); var radians = Math.PI / 180 * a; var x = (circleR * Math.sin(radians)) / Math.sin(Math.PI/2 - radians); // 直线结束点 ctx.lineTo(x, 0); // 直线样式 if(Math.abs(a) == 45) { ctx.strokeStyle = "rgb(255,255,255)"; ctx.lineWidth = 1; } else if(a == 0) { ctx.strokeStyle = "rgb(200,200,200)"; ctx.lineWidth = 0.5; } else { ctx.strokeStyle = "rgb(110,110,110)"; ctx.lineWidth = 0.2; } // 创建径向渐变 var grd = ctx.createRadialGradient(0, 0, 0, 0, 0, 300); // 渐变色 grd.addColorStop(0,"red"); grd.addColorStop(0.15,"orange"); grd.addColorStop(0.3,"yellow"); grd.addColorStop(0.45,"green"); grd.addColorStop(0.6,"Cyan"); grd.addColorStop(0.75,"blue"); grd.addColorStop(1,"purple"); // 设置绘制颜色 ctx.strokeStyle = grd; // 阴影 ctx.shadowBlur = 3; ctx.shadowColor = 'rgba(255, 255, 255, 0.5)'; // 绘制 ctx.stroke(); // 旋转画布 ctx.rotate((Math.PI / 180) * often); }