• Core Canvas–Day1


    绘制

    1.坐标系统:

    canvas的坐标以左上角为原点,如图

    image

    可对canvas的坐标系统进行变换,变换的方式有

    • 平移translate
    • 旋转rotate
    • 缩放scale
    • 创建自定义的变换方式,切变

    2.矩形的绘制

    API:

    • 清除:clearRect(double x , double y, double w,double h); //x,y是坐标位置,w,h是宽高
    • 描边:strokeRect(double x ,double y ,double w ,double h);

              --------strokeStyle,lineWidth,lineJoin,miterLimit

    • 填充:fillRect(double x,double y,double w,double h);

    示例:http://runjs.cn/code/ibcpa7fm

    var canvas = document.getElementById("canvas"),
            context = canvas.getContext("2d");
    
    context.font = "14px Microsoft YaHei";
    context.fillText("Click to Erase",200,15)
    
    context.fillStyle = "#bc223d";
    context.fillRect(50,50,100,20);
    
    //context.lineJoin = "round";
    context.lineWidth = 1;
    context.strokeStyle = "green";
    context.strokeRect(50,10,100,20);
    
    canvas.onmousedown = function(){
        context.clearRect(0,0,canvas.width,canvas.height);
    }

    3.渐变色与图案

    3.1渐变色

             canvas支持线性渐变(linear)和放射渐变(radial)

            API

    方法

    描述

    CanvasGradient.createLinearGradient(double x0,double y0,double x1,double y1);

    创建线性渐变;参数表示线性渐变的两个端点.返回CanvasGradient实例,可通过CanvasGradient.addColorStop()方法来向线性渐变增加颜色停止点.

    CanvasGradient.createRadialGradient(double x0,double y0,double r0,double x1,double y1,double r1);

    创建放射渐变.参数表示位于圆锥形变区域两端的圆形.返回CnvasGradient实例.

    示例:http://runjs.cn/code/mdh08l1c

    var canvas = document.getElementById("canvas"),
            context = canvas.getContext("2d");
    var gradient = context.createLinearGradient(0,0,canvas.width,0);
    gradient.addColorStop(0,"blue");
    gradient.addColorStop(0.25,"#bc223d");
    gradient.addColorStop(0.5,"#eaeaea");
    gradient.addColorStop(0.75,"#bc223d");
    gradient.addColorStop(1,"blue");
    context.fillStyle = gradient;
    //context.fillRect(0,0,canvas.width,canvas.height);
    context.rect(0,0,canvas.width,canvas.height);
    context.fill();
    //2.放射渐变
    var radialGradient = context.createRadialGradient(canvas.width/2,canvas.height,10,canvas.width/2,0,100);
    radialGradient.addColorStop(0,"rgba(0,0,255,0.5)");
    radialGradient.addColorStop(0.5,"rgba(255,0,255,0.9)");
    radialGradient.addColorStop(1,"#bc223d");
    context.fillStyle = radialGradient;
    context.fillRect(0,0,canvas.width,canvas.height);

    3.2 图案

      先上示例:http://runjs.cn/code/zzipqao3

    API

    方法

    描述

    CanvasPattern createPattern(HTMLImageElement | HTMLCanvasElement | HTMLVideoElement image,DOMString repetition)


    第一个参数为指定的类型图案,第二个参数为如何重复该图案.值为repeat,no-repeat,repeat-x,repeat-y
  • 相关阅读:
    C++11 新特性之 变长參数模板
    Cocos2dx 3.6源代码编译错误:syntax error : missing ')' before '{'
    android开发中,在java中怎样使用c提供过来char*
    cocos2d-x 3.1.1 学习笔记[11] http请求 + json解析
    T420s成功加装固态硬盘(SSD)
    我对GFWed的一些自己的见解
    css样式布局中position的那些事儿
    Tokyo Tyrant(TTServer)系列(一)-介绍和安装
    Linux 文件描述符和重定向
    装饰模式
  • 原文地址:https://www.cnblogs.com/winyou/p/5488793.html
Copyright © 2020-2023  润新知