首页 > 软件开发 > HTML >

canvas初级教学

来源:互联网 2023-03-16 19:18:05 182

主要内容:eCe办公区 - 实用经验教程分享!

1.如何实现用canvas输出图像eCe办公区 - 实用经验教程分享!

2.如何用canvas绘制指定形状eCe办公区 - 实用经验教程分享!

3.如何用canvas制做简单动画eCe办公区 - 实用经验教程分享!

工具/原料

  • html编辑器(也可使用网页在线编辑器,推荐菜鸟教程)
  • 准备几张网页图片的链接

方法/步骤

  • 1

    为了简单便捷的进行学习,此处我们采用菜鸟教程提供的网页编辑器来进行学习html中canvas组件的初级教程,首先是创建争耕一个canvas组件,然后定义id和class。eCe办公区 - 实用经验教程分享!

    id的作用是方便通过Javascript寻找到canvas组件eCe办公区 - 实用经验教程分享!

    通过id查找组件用法示例:eCe办公区 - 实用经验教程分享!

    var canvas = document.getElementById("canvasId");eCe办公区 - 实用经验教程分享!

    class则是用来定义样式,当然也能够用来寻找组件eCe办公区 - 实用经验教程分享!

    通过class查找组件用法示例:eCe办公区 - 实用经验教程分享!

    var canvas = document.getElementsByClassName("canvasId")[0];eCe办公区 - 实用经验教程分享!

    用这个方法查找返回的是一个对象数组,因为class标签在html中并非唯一标识eCe办公区 - 实用经验教程分享!

    canvas初级教学eCe办公区 - 实用经验教程分享!

  • 2

    了解了一些基本操作后,接下来就是实践了,主要通过示例演示。eCe办公区 - 实用经验教程分享!

    示例显示图片eCe办公区 - 实用经验教程分享!

    !DOCTYPE html>eCe办公区 - 实用经验教程分享!

    html>head>meta charset="utf-8">eCe办公区 - 实用经验教程分享!

    title>canvas基础教学/title>/head>eCe办公区 - 实用经验教程分享!

    body>canvas id="demo" class="demo">/canvas>/body>eCe办公区 - 实用经验教程分享!

    script>eCe办公区 - 实用经验教程分享!

    var canvas_element = document.getElementById("demo");//获取元素eCe办公区 - 实用经验教程分享!

    var canvas_blank = canvas_element.getContext("2d");//创建一个画布eCe办公区 - 实用经验教程分享!

    var img = new Image();//创建一个图像对象eCe办公区 - 实用经验教程分享!

    img.src = '此处为网络图片地址';eCe办公区 - 实用经验教程分享!

    img.onload = function ()//加载图像并绘制eCe办公区 - 实用经验教程分享!

    {canvas_element.width = img.width;//定义显示图像的宽度eCe办公区 - 实用经验教程分享!

    canvas_element.height = img.height;//定召场追义显示图像的高度eCe办公区 - 实用经验教程分享!

    canvas_blank.drawImage(img, 0, 0, img.width, img.height);eCe办公区 - 实用经验教程分享!

    //一定要放在onload函数里面,不然图像可能加载不出来eCe办公区 - 实用经验教程分享!

    };eCe办公区 - 实用经验教程分享!

    eCe办公区 - 实用经验教程分享!

    eCe办公区 - 实用经验教程分享!

    /script>/html>eCe办公区 - 实用经验教程分享!

    canvas初级教学eCe办公区 - 实用经验教程分享!

  • 3

    常见图形绘制eCe办公区 - 实用经验教程分享!

    var canvas_element = document.getElementById("demo");//获取元素eCe办公区 - 实用经验教程分享!

    var canvas_blank = canvas_element.getContext("2d");//创建一个画狠政布eCe办公区 - 实用经验教程分享!

    1.线条eCe办公区 - 实用经验教程分享!

    canvas_blank.moveTo(0,0);//确定起点eCe办公区 - 实用经验教程分享!

    canvas_blank.lineTo(200,100);//确定线条终点eCe办公区 - 实用经验教程分享!

    canvas_blank.stroke();//开始绘制eCe办公区 - 实用经验教程分享!

    2.圆形eCe办公区 - 实用经验教程分享!

    canvas_blank.arc(50,100,30,0,2*Math.PI);eCe办公区 - 实用经验教程分享!

    //50表示圆心x坐标eCe办公区 - 实用经验教程分享!

    //100表示圆心y坐标eCe办公区 - 实用经验教程分享!

    //30表示半径eCe办公区 - 实用经验教程分享!

    //0表示起始弧度eCe办公区 - 实用经验教程分享!

    //2*Math.PI终止弧度eCe办公区 - 实用经验教程分享!

    canvas_blank.stroke();eCe办公区 - 实用经验教程分享!

    eCe办公区 - 实用经验教程分享!

    eCe办公区 - 实用经验教程分享!

    eCe办公区 - 实用经验教程分享!

    3..矩形eCe办公区 - 实用经验教程分享!

    canvas_blank.rect(20,0,100,100);//参数分别表示(x,y,width,height)eCe办公区 - 实用经验教程分享!

    canvas_blank.stroke();eCe办公区 - 实用经验教程分享!

    canvas初级教学eCe办公区 - 实用经验教程分享!

    canvas初级教学eCe办公区 - 实用经验教程分享!

    canvas初级教学eCe办公区 - 实用经验教程分享!

  • 3此文章未经许可获取自百度经验
  • 4

    1.绘制心形动画eCe办公区 - 实用经验教程分享!

    !DOCTYPE>html>body>canvas id="demo">/canvas>script>eCe办公区 - 实用经验教程分享!

    var canvas_element = document.getElementById("demo");//获取元素eCe办公区 - 实用经验教程分享!

    var canvas_blank = canvas_element.getContext("2d");//创建一个画布eCe办公区 - 实用经验教程分享!

    canvas_element.width=800;//设置canvas的宽高eCe办公区 - 实用经验教程分享!

    canvas_element.height=800;eCe办公区 - 实用经验教程分享!

    canvas_blank.strokeStyle = "red";//设置线条颜色eCe办公区 - 实用经验教程分享!

    canvas_blank.lineWidth = 2;//设置线条宽度eCe办公区 - 实用经验教程分享!

    function calcualte_heart_position(size, dx, dy) {//定义心形的途经坐标;eCe办公区 - 实用经验教程分享!

    //size:大小;x:所在位置;y:所在位置,相对于坐标原点;eCe办公区 - 实用经验教程分享!

    var i,x,y;var list_arr = [];eCe办公区 - 实用经验教程分享!

    for (i = 0; i = 6.29; i = 0.04) {//i的取值为一个完整周期(0,2π)eCe办公区 - 实用经验教程分享!

    x = size*16*(Math.sin(i)*Math.sin(i)*Math.sin(i)) dx;eCe办公区 - 实用经验教程分享!

    //计算心形坐标,方法有很多,不唯一eCe办公区 - 实用经验教程分享!

    y = -size*(13*Math.cos(i)-5*Math.cos(2*i)-2*Math.cos(3*i)-eCe办公区 - 实用经验教程分享!

    Math.cos(4*i)) dy;eCe办公区 - 实用经验教程分享!

    list_arr.push({current_x: x,current_y: y})}return list_arr;}eCe办公区 - 实用经验教程分享!

    var array_paint = [];var j = 0;var timer = null;var list = [];eCe办公区 - 实用经验教程分享!

    list = calcualte_heart_position(2, 60, 40);eCe办公区 - 实用经验教程分享!

    timer = setInterval(//设置定时器,前面是函数,后面是每隔多少秒执行一次eCe办公区 - 实用经验教程分享!

    function(){if (j list.length - 1) {eCe办公区 - 实用经验教程分享!

    array_paint.push([list[j].current_x * 500 / 100,eCe办公区 - 实用经验教程分享!

    list[j].current_y * 500 / 100]);eCe办公区 - 实用经验教程分享!

    canvas_blank.beginPath();eCe办公区 - 实用经验教程分享!

    canvas_blank.moveTo(array_paint[0][0], array_paint[0][1]);eCe办公区 - 实用经验教程分享!

    if (array_paint.length == 1)eCe办公区 - 实用经验教程分享!

    canvas_blank.lineTo(array_paint[0][0] 1,eCe办公区 - 实用经验教程分享!

    array_paint[0][1] 1);else {var i = 1;for (i in array_paint) {eCe办公区 - 实用经验教程分享!

    canvas_blank.lineTo(array_paint[i][0], array_paint[i][1]);eCe办公区 - 实用经验教程分享!

    canvas_blank.moveTo(array_paint[i][0], array_paint[i][1]);}}eCe办公区 - 实用经验教程分享!

    canvas_blank.closePath();eCe办公区 - 实用经验教程分享!

    canvas_blank.stroke();}eCe办公区 - 实用经验教程分享!

    else{clearInterval(timer); } j ;}, 50);eCe办公区 - 实用经验教程分享!

    /script>/body>/html>eCe办公区 - 实用经验教程分享!

    eCe办公区 - 实用经验教程分享!

    eCe办公区 - 实用经验教程分享!

    canvas初级教学eCe办公区 - 实用经验教程分享!

  • 注意事项

    • 注意编写代码的逻辑
    • 注意标点符号
    • 尽量控制行缩进,使自己的代码简洁美观

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!eCe办公区 - 实用经验教程分享!


    标签: HTML

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码