为了账号安全,请及时绑定邮箱和手机立即绑定
  • font-style: normal(默认)/italic(斜体字)/oblique(倾斜字体) font-variant:normal(默认)/small-caps(只要在使用英文小写字母时才能看出区别,以一种小型的大写字母形式显示小写字母) font-weight:lighter/normal(默认)/bold/bolder,,也可以使用数字设置:100,200,300,400(默认),500,600,700(bold),800,900 font-size:px(默认,如20px)/em(如2em)/百分比%(如150%),也可以使用以下属性值进行设置:xx-small, x-small, medium, large, x-large, xx-large font-family:可以设置多种字体备选;支持@font-face;web安全字体
    查看全部
  • 我也来一个,可以修改pol直接修改有多少个角的对称多边形 <script> window.onload = function(){ var canvas = document.getElementById("canvas"); canvas.width = 800; canvas.height = 800; var context = canvas.getContext("2d"); context.lineWidth=10; drawStar(context,150,300,400,400,0,7,18); }; function drawStar(cxt,r,R,x,y,rot,pol,angelStart){ cxt.beginPath(); for (var i=0;i<pol;i++){ cxt.lineTo(x+R*Math.cos((angelStart+(360/pol)*i-rot)/180*Math.PI),y-R*Math.sin((angelStart+(360/pol)*i-rot)/180*Math.PI)); cxt.lineTo(x+r*Math.cos((angelStart+360/(pol*2)+(360/pol)*i-rot)/180*Math.PI),y-r*Math.sin((angelStart+360/(pol*2)+(360/pol)*i-rot)/180*Math.PI)); } cxt.closePath(); cxt.stroke(); } </script>
    查看全部
    4 采集 收起 来源:画一个五角星

    2018-03-22

  • function detect(event) { var x = event.clientX - canvas.getBoundingClientRect().left;//在当前画布上的位置 var y = event.clientY - canvas.getBoundingClientRect().top; for (var i=0; i<balls.length; i++) { context.beginPath(); context.arc(balls[i].x, balls[i].y, balls[i].r, 0, Math.PI*2); draw(x, y); } }
    查看全部
  • 这个可以实现星星不重复 for (var i = 0; i < 100; i++) { var sum=0; var aStar={ R:Math.random()*10+10, x:Math.random()*460+20, y:Math.random()*460+20, a:Math.random()*360 } if (stars.length==0) { stars.push(aStar); console.log('x') } else{ //第二个以上的星星都要和数组stars里的星星进行比较,和数组里面全部的星星比较完后sum等于star.length,则证明aStar和所有已经存在的星星不重复,就push到数组 for (var i = 0; i < stars.length; i++) { if (Math.sqrt(Math.pow(aStar.x-stars[i].x,2)+Math.pow(aStar.y-stars[i].y,2))>aStar.R+stars[i].R) { sum++; }; if (sum==stars.length) { stars.push(aStar); };}; }; console.log("星星个数: "+stars.length) }; for (var i = 0; i < stars.length; i++) { drawStar(context,stars[i].R,stars[i].R/2,stars[i].x,stars[i].y,stars[i].a);};
    查看全部
    4 采集 收起 来源:画一片星空

    2018-03-22

  • 五角星收缩探照灯3: function starPath(cxt){ cxt.beginPath(); for (var i = 0; i < 5; i++) { cxt.lineTo(Math.cos((18+i*72)/180*Math.PI), -Math.sin((18+i*72)/180*Math.PI)); cxt.lineTo(Math.cos((54+i*72)/180*Math.PI)*0.5, -Math.sin((54+i*72)/180*Math.PI)*0.5); }; cxt.closePath(); } function updateIncrease(canvasWidth,canvasHeight){ if(searhLight.radius>500){ isIncrease=false; }else if(searhLight.radius<150){ isIncrease=true; } if(isIncrease) searhLight.radius+=5; else searhLight.radius-=5; }
    查看全部
    3 采集 收起 来源:clip和剪辑区域

    2018-03-22

  • 五角星收缩探照灯1: <script type="text/javascript"> var searhLight={x:400,y:400,radius:200,vx:Math.random()*5+10,vy:Math.random()*5+10} var isIncrease=true;//星星放大 window.onload=function(){ var canvas=document.getElementById('canvas'); canvas.width=800; canvas.height=800; var context=canvas.getContext("2d"); setInterval(function(){ draw(context); updateIncrease(canvas.width,canvas.height); },40); }
    查看全部
    3 采集 收起 来源:clip和剪辑区域

    2018-03-22

  • 圆形探照灯代码3: function starPath(cxt){ cxt.beginPath(); for (var i = 0; i < 5; i++) { cxt.lineTo(Math.cos((18+i*72)/180*Math.PI), -Math.sin((18+i*72)/180*Math.PI)); cxt.lineTo(Math.cos((54+i*72)/180*Math.PI)*0.5, -Math.sin((54+i*72)/180*Math.PI)*0.5); }; cxt.closePath(); } function update(canvasWidth,canvasHeight){ searhLight.x+=searhLight.vx; searhLight.y+=searhLight.vy; if(searhLight.x-searhLight.radius <=0){ searhLight.vx=-searhLight.vx; searhLight.x=searhLight.radius; } if(searhLight.x+searhLight.radius>=canvasWidth){ searhLight.vx=-searhLight.vx; searhLight.x=canvasWidth-searhLight.radius; } if(searhLight.y-searhLight.radius<=0){ searhLight.vy=-searhLight.vy; searhLight.y=searhLight.radius; } if(searhLight.y+searhLight.radius>=canvasHeight){ searhLight.vy=-searhLight.vy; searhLight.y=canvasHeight-searhLight.radius; } }
    查看全部
    3 采集 收起 来源:clip和剪辑区域

    2018-03-22

  • 圆形探照灯代码1: <script type="text/javascript"> var searhLight={x:400,y:400,radius:200,vx:Math.random()*5+10,vy:Math.random()*5+10} window.onload=function(){ var canvas=document.getElementById('canvas'); canvas.width=800; canvas.height=800; var context=canvas.getContext("2d"); setInterval(function(){ draw(context); update(canvas.width,canvas.height); },40); }
    查看全部
    3 采集 收起 来源:clip和剪辑区域

    2018-03-22

  • <!DOCTYPE html>

    <html>

    <head>

        <meta charset="UTF-8">

        <title>canvas</title>

    </head>

    <body>

        <canvas id="canvas" width="1024" height="768"></canvas>

    <script>

        var canvas = document.getElementById('canvas');

        canvas.width = 800;

        canvas.height = 800;

        var ctx = canvas.getContext('2d');

        fillMoon(ctx, 2, 400, 400, 300, 0);


        function fillMoon(ctx, d, x, y, R, rot, fillColor = '#fb5') {

            ctx.save();

            ctx.translate(x, y);

            ctx.rotate(rot * Math.PI / 180);

            ctx.scale(R, R);

            pathMoon(ctx, d);

            ctx.fillStyle = fillColor;

            ctx.fill();

            ctx.restore();

        }


        function pathMoon(ctx, d) {

            ctx.beginPath();

            ctx.arc(0, 0, 1, Math.PI/2, 3*Math.PI/2, true);

            ctx.moveTo(0, -1);

            ctx.arcTo(d, 0, 0, 1, (Math.sqrt(1+d*d)) /d);

            ctx.closePath();

        }


        function dis(x1, y1, x2, y2) {

            return Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));

        }



    </script>

    </html>


    查看全部
    3 采集 收起 来源:绘制一角弯月

    2018-10-11

  • 既有填充又有描边是先填充在描边,否则描边会被覆盖掉一半的宽度 比较好的代码书写顺序: 1、绘制图形的途径 2、绘制图形状态 3、绘制
    查看全部
  • var balls=[]; window.onload=function(){ var canvas=document.getElementById('canvas'); canvas.width=1200; canvas.height=800; var context=canvas.getContext("2d"); for (var i = 0; i < 50; i++) { var R=Math.floor(Math.random()*255); var G=Math.floor(Math.random()*255); var B=Math.floor(Math.random()*255); var radius=Math.random()*50+20; aBall={ color:"rgb("+R+","+G+","+B+")", radius:radius, x:Math.random()*(canvas.width-2*radius)+radius, y:Math.random()*(canvas.height-2*radius)+radius, vx:(Math.random()*5+5)*Math.pow(-1,Math.floor(Math.random()*100)), vy:(Math.random()*5+5)*Math.pow(-1,Math.floor(Math.random()*100)) } balls[i]=aBall; }; setInterval(function(){ drawcxt(context); update(canvas.width,canvas.height) },50); }
    查看全部
  • function drawcxt(cxt){ var canvas=cxt.canvas; cxt.clearRect(0,0,canvas.width,canvas.height); for (var i = 0; i < balls.length; i++) { cxt.globalCompositeOperation='xor'; cxt.fillStyle=balls[i].color; cxt.beginPath(); cxt.arc(balls[i].x,balls[i].y,balls[i].radius,0,Math.PI*2) cxt.closePath(); cxt.fill(); }; }
    查看全部
  • function update(canvasWidth,canvasHeight){ for (var i = 0; i < balls.length; i++) { balls[i].x += balls[i].vx; balls[i].y += balls[i].vy; if (balls[i].x-balls[i].radius <= 0) { balls[i].vx=-balls[i].vx; balls[i].x=balls[i].radius; }; if (balls[i].x+balls[i].radius >= canvasWidth) { balls[i].vx=-balls[i].vx; balls[i].x=canvasWidth-balls[i].radius; }; if (balls[i].y-balls[i].radius <= 0) { balls[i].vy=-balls[i].vy; balls[i].y=balls[i].radius; }; if (balls[i].y+balls[i].radius >= canvasHeight) { balls[i].vy=-balls[i].vy; balls[i].y=canvasHeight-balls[i].radius; }; }; }
    查看全部
  • 小结@高级内容 1、阴影 2、global:globalAlpha,globalCompositeOperation。 3、clip:剪辑区域【按照灯】 4、非零环绕原则,镂空:路径的方向很重要。 5、isPointInPath:点击检测。
    查看全部
  • arcTo(x1,y1,x2,y2,radius);
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
需有基础HTML,JS,CSS知识。需学习《绚丽的倒计时效果》Canvas绘图第一课。
老师告诉你能学到什么?
深入了解Canvas各个绘图接口的使用方法。基础图形学知识。通过对一些基本元素的绘制,启发大家更多有效地绘图方法。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!