canvas元素

十、canvas元素

半城伤御伤魂 提交于 2020-04-05 19:45:51
一、canvas元素的基础知识 canvas元素是html5中新增的一个重要的元素,专门用来绘制图形。在页面上放置了一个canvas元素,就相当于在页面上放置了一块“画布”,可以在其中绘画图形。但是在canvas中绘图,并不是用鼠标画图。事实上,canvas元素只是一块无色透明的区域。需要使用javascript编写在其中进行绘画的脚本。从这个角度来说,可以把他理解为类似其他开发语言中的canvas画布。 1、在页面中放置canvas元素,首先要指定的是id、width、height三个属性。 事例代码如下: <body onload="draw('canvas')"> <canvas id="canvas" width="200" height="200"></canvas> </body> </html> <script type="text/javascript"> function draw(id){ var canvas=document.getElementById(id); //获取canvas元素 var context=canvas.getContext("2d"); //获得图形上下文 context.fillStyle="#ddd"; //设定绘图样式 context.fillRect(10,10,100,100); //绘制矩形 context

HTML5飞机大战

大城市里の小女人 提交于 2020-03-23 22:32:47
3 月,跳不动了?>>> <html> <head> <meta charset="UTF-8"> <title>飞机大战</title> </head> <body> <canvas id="myCanvas" width="320" height="480" style="border: solid"> 你的浏览器不支持canvas画布元素,请更新浏览器获得演示 </canvas> <div id="message_txt" style="display: block;">飞机大战</div> <div id="score_txt" style="display: block;">分数:0分</div> <script type="text/javascript"> var canvas = document.getElementById("myCanvas"); var context = canvas.getContext("2d"); document.addEventListener("keydown",onkeydown); var Plan = function (image,x,y,n) { this.image = image; this.x = x; this.y = y; this.originX = x; this.originY = y; this

canvas元素大小与绘图表面大小

十年热恋 提交于 2020-03-23 02:30:59
原文链接: canvas总结:元素大小与绘图表面大小 前言 我们使用canvas的时候一般在canvas元素中直接设置它的width和height: 1 <canvas id= "myCanvas" width= "300" height= "150" >browser don't support canvas</canvas> 当然,也可以不在canvas中进行设置,直接在css样式中设置,因为canvas本身也是一个html节点 1 canvas{width:600px;height:300px} 设置以后,打开页面,发现canvas画布展示大小也ok,这个时候,我们在上面画一个40*40矩形,看下效果 1 2 3 4 5 var canvas = document.getElementById( 'canvas' ), context = canvas.getContext( '2d' ); context.fillStyle = 'cornflowerblue' ; context.fillRect(0, 0, 40, 40); 运行页面,展示如下 canvas大小为600px,高为300px,没有任何问题,符合预期。但是矩形...这显然不是40*40好吧,这是80*80 为什么会发生这种情况呢? canvas的元素大小与绘图表面大小 canvas的大小分为两种

Windows Phone 8 常用UI控件 (一)

ぐ巨炮叔叔 提交于 2020-03-20 21:17:03
3 月,跳不动了?>>> 1. Grid控件 Grid定义由列和行组成的网格布局。Grid.RowDefinitions和Grid.ColumnDefinitions集合分别包含RowDefinition和ColumnDefinition用来定义行和列的宽度和高度,行列的数量是根据集合中子对象的数量被定义的。各子对象中Grid.Row和Grid.Column属性用于定义在网格中的位置。 2. StackPanel控件 StackPanel控件可以使布局内的各子对象以水平或垂直的方式顺序排列。通过设置Orientation="Vertical"或者Orientation="Horizontal"来定义排列方式。默认情况以垂直方向排列子对象。 3. Canvas 以绝对位置的方式布局。通过设置子对象Canvas.Left 指定对象与所在的 Canvas 的左侧之间的距离(x 坐标);Canvas.Top 指定对象与所在的 Canvas 的顶部之间的距离(y 坐标) Canvas 可以包含子对象,这些子对象呈现在 Canvas 区域中,是通过坐标来显式定位的。由于绝对定位不考虑浏览器窗口的大小或浏览器大小调整,因此一般最好使用 Grid 或 StackPanel 作为容器。 由于 Canvas 为 UIElement 类型,因此可以嵌套 Canvas 对象 很多情况下,Canvas

Canvas - Web API

最后都变了- 提交于 2020-03-17 02:44:27
<canvas> 是 HTML5 新增的元素,可用于通过使用 JavaScript 中的脚本来绘制图形。例如,它可以用于绘制图形,制作照片,创建动画,甚至可以进行实时视频处理或渲染。 Mozilla 程序从 Gecko 1.8 ( Firefox 1.5 ) 开始支持 <canvas> 。它首先是由 Apple 引入的,用于 OS X Dashboard 和 Safari。Internet Explorer 从IE9开始 <canvas> ,更旧版本的IE可以引入 Google 的 Explorer Canvas 项目中的脚本来获得 <canvas> 支持。Chrome和Opera 9+ 也支持 <canvas> 。 WebGL 也使用 <canvas>元素在 网页上绘制硬件加速的3D图形。 示例 这只是一个使用 CanvasRenderingContext2D.fillRect() 方法简单的代码片段。 HTML <canvas id="canvas"></canvas> JavaScript var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); ctx.fillStyle = 'green'; ctx.fillRect(10, 10, 100, 100);

html5中Canvas为什么要用getContext('2d')

不羁岁月 提交于 2020-03-17 02:44:10
HTML DOM getContext() 方法 HTML DOM Canvas 对象 定义和用法 getContext() 方法返回一个用于在画布上绘图的环境。 语法 Canvas.getContext(contextID) 参数 参数 contextID 指定了您想要在画布上绘制的类型。当前唯一的合法值是 "2d",它指定了二维绘图,并且导致这个方法返回一个环境对象,该对象导出一个二维绘图 API。 提示:在未来,如果 <canvas> 标签扩展到支持 3D 绘图,getContext() 方法可能允许传递一个 "3d" 字符串参数。 返回值 一个 CanvasRenderingContext2D 对象,使用它可以绘制到 Canvas 元素中。 描述 返回一个表示用来绘制的环境类型的环境。其本意是要为不同的绘制类型(2 维、3 维)提供不同的环境。当前,唯一支持的是 "2d",它返回一个 CanvasRenderingContext2D 对象,该对象实现了一个画布所使用的大多数方法。 举个简单的例子,画一个五子棋棋盘为例: <canvas id="chess" width="450px" height="450px"></canvas> var chess = document.getElementById("chess"); var context = chess

H5的canvas绘图技术

安稳与你 提交于 2020-03-11 17:45:56
H5的canvas绘图技术 canvas元素是HTML5中新添加的一个元素,该元素是HTML5中的一个亮点。Canvas元素就像一块画布,通过该元素自带的API结合JavaScript代码可以绘制各种图形和图像以及动画效果。 1.1 浏览器不兼容问题 ie9以上才支持canvas, 其他chrome、firefox、苹果浏览器等都支持 只要浏览器兼容canvas,那么就会支持绝大部分api(个别最新api除外) 移动端的兼容情况非常理想,基本上随便使用 2d的支持的都非常好,3d(webgl)ie11才支持,其他都支持 如果浏览器不兼容,最好进行友好提示,提示内容只有在浏览器不支持时才显示。 //例如: <canvas id="cavsElem"> 你的浏览器不支持canvas,请升级浏览器 </canvas> 浏览器不兼容,也可以使用flash等手段进行优雅降级 1.2 创建画布 在页面中创建canvas元素与创建其他元素一样,只需要添加一个<canvas>标记即可。该元素默认的宽高为300*15,可以通过元素的width属性和height属性改变默认的宽高。 注意: 不能使用CSS样式控制canvas元素的宽高,否则会导致绘制的图形拉伸。 重新设置canvas标签的宽高属性会导致画布擦除所有的内容。 可以给canvas画布设置背景色 1.3 canvas坐标系

微信图片生成插件,页面截图插件 html2canvas,截图失真 问题的解决方案

江枫思渺然 提交于 2020-03-08 09:52:47
html2canvas 是一个相当不错的 JavaScript 类库,它使用了 html5 和 css3 的一些新功能特性,实现了在客户端对网页进行截图的功能。html2canvas 通过获取页面的 DOM 和元素的样式信息,并将其渲染成 canvas 图片,从而实现给页面截图的功能。 官网: https://github.com/niklasvh/html2canvas 遇到的问题: 参考官方的 Demo,发现所截的图失真厉害。 解决方案: 将 canvas 的宽高放大到原容器宽高的 3 倍,参考代码如下: <html> <head> <meta name="layout" content="main"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" src="html2canvas.js"></script> <script type="text/javascript" src="canvas2image.js"></script> </head> <body> <div id="to-image">

UGUI组件(1)Canvas 和 RectTransform

佐手、 提交于 2020-03-07 18:41:00
版本:Unity5.4.2f1 Canvas(画布) 手册: https://docs.unity3d.com/Manual/class-Canvas.html 这个组件是代表UI布局和渲染的空间。所有UI元素必须是在一个有Canvas组件的对象下。当在没有Canvas场景中创建一个UI元素时,同时也会生成一个Canvas对象。 参数: Pixel Perfect (Screen Space modes only) :不使用反锯齿渲染UI Render Camera (Screen Space - Camera mode only) :选择一个绘制UI的摄像机 Plane Distance (Screen Space - Camera mode only) :放置UI平面在摄像机前面的距离大小 Event Camera (World Space mode only) :处理UI事件的摄像机 Receives Events :是否通过该摄像机处理UI事件 补充: 一个场景中只有一个Canvas是足够的,但也允许同时存在多个Canvas。也可以嵌套多个Canvas,但嵌套的Canvas是和父级的渲染方式一样。 嵌套的Canvas截图: 通常是把UI元素作为一个绘制在屏幕上的图形,而没有把UI元素当作为一个3D空间内的对象。 在Unity中不仅支持使用传统的渲染概念

canvas游戏开发学习之一:初识<canvas>标签

一世执手 提交于 2020-03-06 00:46:50
让我们从 <canvas> 元素的定义开始吧。 <canvas id="myCanvas" width="150" height="150"></canvas> <canvas>看起来很像<img>,唯一不同就是它不含 src 和 alt 属性。它只有两个属性,width 和 height,两个都是可选的,并且都可以 用 DOM 或者 CSS来设置。如果不指定width 和 height,默认的是 宽300像素 , 高150像素 。虽然可以通过 CSS来调整canvas的大小,但渲染图像会缩放来适应布局的(如果你发现渲染结果看上去变形了,不必一味依赖CSS,可以尝试显式指定canvas的width 和 height 属性值)。</canvas>结束标签是必须的。 <canvas>元素可以像普通图片一样指定其样式(边距,边框,背景等等)。然而这些样式并不会对canvas实际生成的图像产生什么影响。下面我们会看到如何应用样式。如果不指定样式,canvas默认是全透明的。 因为 <canvas> 相对较新,有些浏览器并没实现,如Firefox 1.0 和 Internet Explorer,所以我们需要为那些不支持canvas的浏览器提供替用显示内容。我们只需要直接在canvas元素内插入替用内容即可。不支持canvas的浏览器会忽略canvas元素而直接渲染替用内容