为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Canvas绘图详解_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Canvas绘图详解

liuyubobobo 全栈工程师
难度中级
时长 4小时35分
  • 设置全局的透明度

    设置图形压盖顺序


    查看全部
  • XY是阴影出来的长宽

    Blur是阴影的模糊程度

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

    2025-06-15

  • 水平

    垂直

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

    2025-06-15

  • font:字体,字型和字号

    查看全部
  • 前俩都是控制点最后一个就是终止点

    查看全部
  • QuadraticCurvewTo中x1,y1就是起点,x2,y2就是终点

    查看全部
  • 如何计算弧度的半径

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

    2025-06-15

  • 当半径过大时,x0、y0会先向反方向移动以找到切点

    arcTo函数将从(x0,y0)开始绘制之后绘制一条弧线,这条弧线和这两个线段所组成的折线相切并且其圆弧的半径为radius
    注意:起始点的坐标是(x0 , y0)此时圆弧还没有开始,终止点的坐标不一定是(x2 , y2)而是和(x1 , y1)(x2 , y2)这条线相切的地方
    1.绘制的起始点一定是(x0,y0)但是并不意味着从(x0,y0)位置开始圆弧就要开始,由于arcTo()函数绘制的是和两条折线相切的圆弧所以从真正的切点开始
    2.传入的(x2,y2)完全是和(x1,y1)组成的一条切线,而(x2,y2)不一定是圆弧最终结束的位置它只是作为一个辅助线的结束位置,最终这个圆弧将结束在切点的位置
    2.arcTo()的绘制起点是(x0,y0)但是(x0,y0)不一定是圆弧的切点,圆弧的绘制将停止于(x1,y1)(x2,y2)这条线的切点
    3.(x0,y0)(x1,y1)(x2,y2)实质上只是形成了两条辅助线,这条辅助线告诉arcTO()函数应该相切于哪个线

    查看全部
  • fillStyle__填充样式(样式是多种多样的);
    var linearGrad = context.createLinearGradient(Xstar,Ystar,Xend,Yend);创建线性渐变(起始位置X,Y,结束位置X,Y);
    grd.addColorStop(stop,color);stop是(开始填充)位置(0.0~1.0的数值),color是要填充的颜色;这个.addColorStop()至少要2个;

    查看全部
    0 采集 收起 来源:线性渐变

    2025-06-15

  • miterLimit只有当lineJoin是miter时才有用,指的是内角和外角之间的距离最大值是(设定值)当像素超过这个值就会使用bevel的方式来显示

    查看全部
  • 结束闭合,完成闭环,在开始绘制图形开头和结尾加下列代码

    context.beginPath();

    context.closePath();

    查看全部
  • http://img1.sycdn.imooc.com//624d080b000143cf17260970.jpg推导图

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

    2022-04-06

  • 绘制多边形的时候 要用beginpath和closepath包起来

    查看全部
  • 这是我的一个混合式布局笔记,关于绘图之旅的

    哈哈

    查看全部
  • 结合前几节的教程,模拟了一个定时滚动的齿轮,分享一下,共同进步。


    window.onload = function() {

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

         canvas.width = 800;

         canvas.height = 800;

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

         let a = 0

         var timer = setInterval(function() {

             a++;

             if (a <= 20) {

                 ctx.clearRect(0, 0, canvas.width, canvas.height);

                 mutiStart(ctx, 400, 400, 300, 150, 18, 5, 18 * a)

             } else {

             a = 0;

             clearInterval(timer);

             }

        }, 1000)

    }

    /**

    * @param {Object} ctx

    * @param {Object} x Star的X轴偏移量

    * @param {Object} y Star的y轴偏移量

    * @param {Object} R 外圆半径

    * @param {Object} r 内圆半径

    * @param {Object} rot Star旋转度数(顺时针)

    * @param {Object} multi 几边形

    * @param {Object} angel  Star旋转度数(逆时针)

    */

    function mutiStart(ctx, x, y, R, r, rot, multi, angel) {


         ctx.beginPath();

         ctx.fillStyle = "#F1FA0C";

         ctx.strokeStyle = "#F1FA0C";

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

             ctx.lineTo(Math.cos((angel + (360 / multi) * i - rot) / 180 * Math.PI) * R + x,

             y - Math.sin((angel + (360 / multi) * i - rot) / 180 * Math.PI) * R

             )

             ctx.lineTo(Math.cos((angel + 360 / (multi * 2) + (360 / multi) * i - rot) / 180 * Math.PI) * r + x,

             y - Math.sin((angel + 360 / (multi * 2) + (360 / multi) * i - rot) / 180 * Math.PI) * r

             )

    }

         ctx.closePath();

         ctx.fill();

         ctx.stroke();

    }

    查看全部
    0 采集 收起 来源:画一个五角星

    2021-08-13

  • 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 = -alls[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 + alls[i].radius >= canvasHeight) {

                        balls[i].vy = -s[i].vy;

                        balls[i].y = canvasHeight-balls[i].radius;

                    }

    这是update函数部分

    查看全部
  • http://img1.sycdn.imooc.com//5ffee24d0001affa07220272.jpg这是利用背景填充,原理跟ps里面剪贴蒙版效果一致

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

    2021-01-13

  • 保存canvas状态

    查看全部
  • 第三課的例子地址

    查看全部
  • 第三方Canvas圖形庫

    查看全部
    0 采集 收起 来源:Canvas图形库

    2020-12-13

  • 兼容性代碼示例

    查看全部
  • 老IE兼容問題

    查看全部
  • Canvas标准

    https://www.w3.org/TR/2dcontext/

    https://html.spec.whatwg.org/

    查看全部
  • 探照灯、聚光灯效果

    查看全部
    0 采集 收起 来源:clip和剪辑区域

    2020-12-13

首页上一页1234567下一页尾页

举报

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

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