`
xiaotongeye
  • 浏览: 19540 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

canvas画布基础

阅读更多
canvas是个神奇的标签,开始学习之后就停不下来,这两天一直在慕课网上学习canvas的动画,老师讲的很好,很详细,现在我就简单的总结一下这两天学的内容。
首先对于HTML中的代码很简单:
<canvas id = "canvas" style = "border:1px solid #eee;display:block;margin:0 auto"></canvas>

然后在JavaScript中获取canvas
window.onload = function () {
        var canvas = document.getElementById("canvas");
        canvas.width = 1200;
        canvas.height = 795;
        context = canvas.getContext("2d");
}

context非常重要,它用来承载我们所要实现的内容
//直线
context.strokeStyle = "red";//直线的颜色
context.lineWidth = 3;//直线的宽度
context.beginPath();
context.moveTo(100,100);
context.lineTo(800,800);
context.closePath();
context.stroke();//绘制直线

//矩形
context.fillStyle = "blue";//矩形的填充颜色
context.strokeStyle = "black";//矩形的边框颜色
context.lineWidth = 3;//矩形边框的宽度
context.beginPath();
context.fillRect(100,100,200,100);//绘制一个起点在100,100位置宽200高100的矩形,矩形填充色为蓝色
context.strokeRect(100,100,200,100);//给矩形绘制宽度为3的黑色边框

//圆形
context.arc(x,y,r,o,f,true);//x:圆心的x坐标,y;圆心的y坐标,r:半径,o圆的起始位置,f:圆的终止位置,true or false:表示顺时针或者逆时针
//圆环
实现圆环是先画两个不一样大小的圆,要保证这两个圆的旋转方向是相反的,然后进行背景色的填充,这是根据非零环绕原则进行的区域填充
//直线渐变
var linearGrad = context.createLinearGradient(0,0,800,700);
linearGrad.addColorStop(0.0,"#fff");
linearGrad.addColorStop(1.0,"#000");
context.fillStyle = linearGrad;
context.fillRect(0,0,800,700);
//径向渐变
var radiaGrad = context2.createRadialGradient(400,400,100,400,400,500);
radiaGrad.addColorStop(0,"white");
radiaGrad.addColorStop(0.25,"yellow");
radiaGrad.addColorStop(0.5,"green");
radiaGrad.addColorStop(0.75,"blue");
radiaGrad.addColorStop(1,"black");
context2.fillStyle = radiaGrad;
context2.fillRect(0,0,800,800);
//图片填充
var img = new Image();
img.src = "1.jpg";
img.onload = function(){
    var pattern = context.createPattern(img,"repeat");//repeat,repeat-x,repeat-y,no-repeat
    context.fillStyle = pattern;
    context.fillRect(0,0,800,600);
 }
//线条的属性
lineCap="butt"//默认直线两端的样式
       ="round"
       ="square"
lineJoin = "miter"
           "bevel"
           "round"
//曲线的绘制
context.moveTo(x0,y0);
context.arcTo(x1,y1,x2,y2,r);//与x0y0到x1y1这条直线和x1y1到x2y2这条直线相切半径为r的曲线
//二次贝塞尔曲线
context.moveTo(x0,y0);
context.quadraticCurveTo(x1,y1,x2,y2);//x1,y1为曲线的控制点,x0y0为曲线的起始点,x2y2为曲线的终止点
//三次贝塞尔曲线
context.moveTo(x0,y0);
context.bezierCurveTo(x1,y1,x2,y2,x3,y3);//x1y1与x2y2为两个控制点
分享到:
评论

相关推荐

    HTML5 使用canvas画布做小球回弹动画

    接下来,我们编写JavaScript代码(例如在`ballAnimation.js`文件中),初始化canvas画布并设置绘图环境: ```javascript const canvas = document.getElementById('ballCanvas'); const ctx = canvas.getContext('...

    Android基础软件源码(Canvas画布).zip

    Android基础软件源码(Canvas画布).zip

    画布Canvas基础知识讲解

    画布Canvas基础知识讲解 HTML5 规范引进了很多新特性,其中最令人期待的之一就是 Canvas 元素。HTML5 Canvas 提供了通过 JavaScript 绘制图形的方法,此方法使用简单但功能强大。每一个 Canvas 元素都有一个“上...

    Canvas画布全屏雪花背景特效.zip

    在这个"Canvas画布全屏雪花背景特效.zip"中,我们看到的是一个利用JavaScript实现的全屏雪花飘落动画效果,非常适合用于网站背景,营造出冬季或者浪漫的氛围。 首先,我们要理解JavaScript在其中的角色。JavaScript...

    Android Canvas画布使用Demo源码.rar

    这个"Android Canvas画布使用Demo源码.rar"压缩包很可能是为了展示如何在实际项目中利用Canvas来创建自定义视图或者进行复杂的图形渲染。下面我们将详细探讨Android Canvas的使用方法以及相关知识点。 1. **Canvas...

    canvas画布3D的万花筒动画特效.rar

    首先,我们来详细了解一下Canvas画布的基础知识。Canvas是一个基于矢量图形的HTML元素,通过JavaScript API来动态渲染图像。这个API提供了丰富的绘图函数,如描边、填充路径、绘制圆形、矩形、图像等,甚至可以创建...

    Canvas画布点击拖动粒子特效.zip

    在本文中,我们将深入探讨HTML5 Canvas技术和JavaScript特效,特别是如何实现"Canvas画布点击拖动粒子特效"。Canvas是HTML5的一个重要组成部分,它提供了一个二维绘图接口,允许开发者在网页上进行动态图形绘制。这...

    Delphi中canvas(画布)运用

    ### Delphi中Canvas(画布)运用 在Delphi编程中,`Canvas`是一个非常重要的概念,它提供了绘制图形的基本工具。本文将详细介绍Delphi中`Canvas`的基础知识及其应用场景。 #### 一、Canvas的基本概念 `Canvas`是...

    html5 canvas画布随机颜色变化特效

    在这个“html5 canvas画布随机颜色变化特效”中,我们将深入探讨如何利用Canvas API实现颜色的随机变化,为网页增添动态美感。 首先,我们需要在HTML文档中创建一个`&lt;canvas&gt;`元素,并通过JavaScript获取到它的引用...

    WebGL/ThreeJS Sprite、SpriteMaterial通过精灵模型和Canvas画布Demo

    在本Demo中,我们将深入探讨WebGL和Three.js中的Sprite和SpriteMaterial,以及如何结合Canvas画布进行更复杂的图形操作。 首先,让我们了解Sprite。在Three.js中,Sprite是一种特殊的几何体,它只由一个二维平面...

    Canvas画布绘制螺旋点延伸特效.zip

    在"Canvas画布绘制螺旋点延伸特效.zip"这个压缩包中,可能包含了一个使用Canvas API创建动态螺旋点延伸效果的示例或代码库。这个特效可能用于网页的背景装饰、动画展示或者其他交互式设计。 首先,我们要理解Canvas...

    javascript canvas画布编写飞机大战.zip

    本项目"javascript canvas画布编写飞机大战.zip"就是利用这个特性,构建了一个激动人心的飞行射击游戏——飞机大战。在这个游戏中,玩家可以控制一架飞机,与敌人在天空中展开激烈的战斗。 Canvas API是JavaScript...

    应用源码之(Canvas画布)(.zip

    Canvas画布是Android系统中用于图形绘制的核心组件,它是Android图形系统的重要组成部分,允许开发者在屏幕上绘制各种2D图形和文本。在这个“应用源码之(Canvas画布).zip”压缩包中,我们可以深入学习和理解如何在...

    html5 canvas画布绘制燃烧的火焰动画特效.zip

    在这个“html5 canvas画布绘制燃烧的火焰动画特效”项目中,我们将探讨如何利用Canvas API来制作逼真的火焰燃烧效果,同时结合jQuery库以及相关的CSS样式来增强整体的视觉体验。 首先,`index.html`文件是整个网页...

    涂鸦板 html5实现涂鸦板canvas 画布实现

    2. **获取Canvas上下文**:通过JavaScript的`getElementById()`方法获取到`canvas`元素,然后调用其`getContext()`方法获取2D渲染上下文,这是绘制图形的基础。 ```javascript var canvas = document....

    html5 canvas画布里面圆球弹跳动画效果代码

    这个代码实现了一个简单的圆球在Canvas画布上弹跳的动画效果。当球碰到画布边缘时,它的速度会在X或Y轴上反转,从而实现弹跳效果。`requestAnimationFrame`函数用于平滑地在每一帧之间绘制动画,使得动画看起来更加...

    基于canvas画布制作的在线多人射击游戏源码.zip

    《基于canvas画布的在线多人射击游戏源码解析》 在现代互联网游戏中,实时互动的多人在线射击游戏占据了重要地位,而实现这类游戏的关键技术之一就是HTML5的canvas元素。本篇文章将深入探讨一个基于canvas画布制作...

    html5 sonic.js创建canvas画布页面正在加载图标

    HTML5是现代网页开发的关键技术,它引入了许多新特性,如Canvas画布,使得开发者能够直接在网页上绘制图形,创建动态和交互式内容。Sonic.js是一个基于HTML5 Canvas的库,专为创建平滑、高性能的加载图标和动画而...

Global site tag (gtag.js) - Google Analytics