首页 > 软件开发 > HTML >

canvas初级教学

来源:互联网 2023-03-16 19:18:05 版权归原作者所有,如有侵权,请联系我们

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

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

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

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

工具/原料

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

方法/步骤

  • 1

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

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

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

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

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

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

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

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

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

  • 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 注意事项

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

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


    标签: HTML

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