为了账号安全,请及时绑定邮箱和手机立即绑定
  • <!DOCTYPE html>

    <html>

    <head>

      <meta charset="UTF-8">

      <title>Document</title>

    </head>

    <body>

      <canvas id="canvas" ></canvas>

      <script type="text/javascript">

        window.onload = function() {

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

          canvas.width = 600;

          canvas.height = 600;

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

          context.fillStyle = 'black';

          context.fillRect(0, 0, canvas.width, canvas.height);

          for (var i = 0; i < 200; i++) {

            var r = Math.random() * 10 + 10;

            var x = Math.random() * canvas.width;

            var y = Math.random() * canvas.height;

            var a = Math.random() * 360;

            drawStar(context, x, y, r, a);

          }

        }


        function drawStar(ctx, x, y, R, rot) {

            ctx.save();

            ctx.translate(x, y);

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

            ctx.scale(R, R);

            starPath(ctx);

            ctx.fillStyle = '#fb3';

            ctx.fill();

            ctx.restore();

        }

        function starPath(ctx) {

            ctx.beginPath();

            for (var i = 0; i < 5; i++) {

                ctx.lineTo(Math.cos((18+i*72)/180*Math.PI),

                      -Math.sin((18+i*72)/180*Math.PI));

                ctx.lineTo(Math.cos((54+i*72)/180*Math.PI)*0.5,

                      -Math.sin((54+i*72)/180*Math.PI)*0.5);

            }

            ctx.closePath();

        }

      </script>

    </body>

    </html>


    查看全部
  • 图形变换: 位移、大小、缩放。

    context.translate(x, y); 默认多个translate会叠加。

    save(); restore(); 成对出现,中间绘图状态不会对后面造成影响。


    查看全部
  • 关注
    查看全部
  • context.font = "bold 40px Arial"(粗框,40px大小,字体)

    context.fillStyle="#058"颜色

    context.fillText(string,x,y,[maxlen](文字的最长宽度))

    context.strokeText(string,x,y,[maxlen])(只有外边框的文字)

    查看全部
    1 采集 收起 来源:文字渲染基础

    2018-09-22

  • context.textBaseLine = top/middle/bottom/alphabetic(default)/ideographic/hanging 是根据context.fillText(string,x,y)中的y值进行上对齐、下对齐或居中的。后面三个分别表示拉丁文的垂直方向基准线、日语中文等方块字的垂直方向基准线、印度文的垂直方向基准线。 context.textAlign = left/middle/right 是根据context.fillText(string,x,y)中的x值进行左对齐、右对齐或居中的。
    查看全部
    1 采集 收起 来源:文本对齐

    2015-03-30

  • lineCap:设置线条两段的形状

    butt(default)

    round

    square

    lineCap:只能用于线段的开始处和结尾处,不能用于连接处。


    查看全部
  • 处理线条间的连接处用lineJoin,一共有三个值:miter(默认,尖角)、bevel(斜接)、round(圆角)

    materLimit用来限制内角与外角间最大的距离(默认是10),一旦超过这个距离就会使用bevel的衔接方式

    只有在非常需要表现非常尖锐的角时,才会使用到materLimit

    查看全部
  • lineCap设置线条的帽子:butt(默认)、round、square。后两者绘制出的线条都要长一些(戴上了帽子)。lineCap适用于线条的起始处和结尾处不适用于连接处。

    通常绘制一个封闭的多边形用beginPath()和closePath()(推荐),但也可以不用closePath()而用lineCap = “square”来实现

    查看全部
  • 五个顶点坐标计算 函数
    查看全部
    1 采集 收起 来源:画一个五角星

    2015-03-30

  • 没有专门绘制阴影的函数,在设置了关于阴影的状态量之后阴影就会自动出现。

    四个状态量:

    context.shadowColor、context.shadowOffsetX、context.shadowOffsetY、context.shadowBlur

    查看全部
    1 采集 收起 来源:阴影

    2018-08-12

  • 度量文本的用context.measureText(String).width,需要提前确定font状态,目前只能获得宽度不能获得高

    查看全部
    1 采集 收起 来源:文本的度量

    2018-08-11

  • 文本水平方向对齐 设置状态context.textAlign(left center right),以fillText或strokeText的X值为参考

    文本垂直方向对齐 设置状态context.textBaseline(top middle bottom ideographic hanging alphabetic)

    查看全部
    1 采集 收起 来源:文本对齐

    2018-08-11

  • x0,y0是arcTo()的绘制起点,但不一定是切点当半径过大时,切点在延长线上

    查看全部
    1. 获取canvas标签

    2. getElementById得到canvas标签

    3. 获取canvas上下文绘图环境

    查看全部
  • canvas 绘制贝塞尔曲线!

    查看全部

举报

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

微信扫码,参与3人拼团

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

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