老师,有什么可以改进的
来源:7-7 编程练习
光aaaaand影
2019-08-18 11:01:58
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Document</title> <style> canvas{background-color:rgb(77,77,77);} </style> </head> <body> <canvas id="canvas" width="1200px" height="1000px"> 您的浏览器不支持canvas </canvas> <script> var canvas=document.getElementById("canvas"); var ctx=canvas.getContext("2d"); // 在此处补充代码 ctx.save();//保存环境 // 绘制月亮 ctx.shadowOffsetX=10; ctx.shadowOffsetY=10; ctx.shadowBlur=20; ctx.shadowColor="rgba(200,200,200,0.7)"; ctx.beginPath(); ctx.fillStyle="yellow" ctx.arc(100,100,60,0,2*Math.PI); ctx.fill(); //绘制山峰 ctx.restore();//恢复环境 ctx.save()//保存环境 ctx.shadowOffsetX=5; ctx.shadowOffsetY=5; ctx.shadowBlur=15; ctx.shadowColor="rgba(180,180,180,0.4)"; ctx.lineWidth = 10; ctx.strokeStyle = "rgb(88,95,150)"; // 第一座山 ctx.beginPath(); ctx.moveTo(0, 1000); ctx.quadraticCurveTo(120, 180, 250, 1000); ctx.stroke(); // 第二座山 ctx.beginPath(); ctx.moveTo(200, 1000); ctx.quadraticCurveTo(280, 300, 450, 1000); ctx.stroke(); // 第三座山 ctx.beginPath(); ctx.moveTo(450, 1000); ctx.quadraticCurveTo(500, -100, 750, 1000); ctx.stroke(); // 第四座山 ctx.beginPath(); ctx.moveTo(680, 1000); ctx.quadraticCurveTo(900, 140, 1200, 1000); ctx.stroke(); // 绘制文字 ctx.restore();//恢复环境 ctx.shadowOffsetX=10; ctx.shadowOffsetY=20; ctx.shadowBlur=8; ctx.shadowColor="rgba(255,255,255,0.4)"; ctx.fillStyle="#fff"; ctx.font="bold 80px 华文行楷" ctx.fillText("山高月小",700,250); </script> </body> </html>
感觉代码重复了好多,但是每一个元素的阴影效果又不能一概而论,请问老师,如何优化啊
1回答
同学你好, 老师测试同学的代码后,效果实现的很棒。
canvas绘图就是需要一步一步的来操作,没有简单的方法哦。
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
相似问题