zoukankan      html  css  js  c++  java
  • convas-html绘制图像基本属性

    <canvas></canvas>是HTML5中新增的标签,用于绘制图形,实际上,这个标签和其他的标签一样,其特殊之处在于该标签可以获取一个CanvasRenderingContext2D对象,我们可以通过JavaScript脚本来控制该对象进行绘图。

    <canvas></canvas>只是一个绘制图形的容器,除了id、class、style等属性外,还有height和width属性。在<canvas>>元素上绘图主要有三步:

    获取<canvas>元素对应的DOM对象,这是一个Canvas对象;
    调用Canvas对象的getContext()方法,得到一个CanvasRenderingContext2D对象;
    调用CanvasRenderingContext2D对象进行绘图。

    html中添加<myCanvas>标签,标签内无法绘制,必须使用js

    设置convas-html绘制图像的基本属性

    画板
    var c=document.getElementById("myCanvas");

    画笔(绘制颜色) var ctx=c.getContext("2d"); 橡皮擦 ctx.clearRect(x, y, w, h);

    颜色 ctx.fillStyle="#FF0000";

    填充颜色 ctx.fillRect(0,0,150,75); ctx.stroke(); ctx.strokeStyle='#f66';

    确定矩形区域然后执行ctx,fill()/ctx.stroke() ctx.rect(x, y, w, h);

    圆弧
    ctx.arc(x, y, r,atartAng, endAng,[bool]); 坐标,半径,开始,结束点,可变参数

    直线,m与l的区别是,两个l起始点固定,m,l可以改变起始点 ctx.moveTo(x1,y1); ctx.lineTo(x2,y2);

    曲线-贝塞尔曲线,需要有三个点 ctx.bezierCurveTo(x1, y1, cx, cy, x2, y2); 开始点坐标,控制点坐标,结束点坐标

    二次绘制贝塞尔曲线 ctx.quadraticCurveTo(cx, cy, x3, y3); 上一个点的坐标为起始点,控制点和终止点

    线条的粗细 ctx.linewidth=10;
    ctx.lineCap = "butt/round/square";
    线条属性:霸占,方
    ctx.lineJoin = "miter/bever/round"; 线条连接处样式:尖的/圆的/

    文字 ctx.font = "italic 30px 微软雅黑"; 字体样式顺序不能改,粗细,大小,样式

    对齐方式
    ctx.textBaseline = "top"
    实心字 ctx.fillText(str, x, y);
    空心字 ctx.strikeText(str, x, y);
    图像

    let img = new Image(); 
    img.src = ''; 
    img.onLoad = fuction () { 
    ctx.drawImage(img, x, y
    ); 
    ctx.drawImage(img, x, y, w, h); // 把图放在哪个位置,放多大 
    ctx.drawImage(img, ox, oy, ow, oh, cx, cy, cw, ch); // o原图的位置大小,c截取原图的一部分,放到canvas,确定宽高 } 
    

    canvas动画 转换 类似---css转换 translate/rotate/skew/scale ctx.translate(x, y);
    以原点为中心,旋转一定的角度,正值为顺时针,负值为逆时针ctx.rotate(Manth.PI * x)

    之前的一个单位到现在的2个单位(2倍)ctx.scale(2)
    动画

    //动画 
    setInterval(() => { 
    // 绘制方法
    },2000)
    
  • 相关阅读:
    ie用document.getElementsByName获取不到
    js_设置光标到文本的最后位置
    js-转大小写
    mysql查询数据表的路径
    myeclipse导出javadoc时特殊字符 尖括号
    keyCode码集合
    mysql查询数据库约束
    oracle查询每个表的占用空间
    MYSQL复制表
    MacOs上的Intellij idea高频快捷键总结(2018.1版本)
  • 原文地址:https://www.cnblogs.com/luoqiaoting/p/11359364.html
Copyright © 2011-2022 走看看