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

基于Canvas的HTML游戏制作

我的未来我决定 提交于 2020-04-05 19:34:48
开发工具:vs code 关于Canvas 定义Canvas <canvas id="xxx" width="..." height="..." style="border: 2px solid #000;background: #fff;"></canvas> 游戏实例 1、拼图游戏 2、雷电飞机 3、Flappybird 一、拼图游戏 游戏介绍: 拼图游戏将一幅图片分割成若干拼块并将它们随机打乱顺序。当将所有拼块都放回原位置时,就完成了拼图(游戏结束)。 在“游戏”中,单击滑块选择游戏难易,“容易”为3行3列拼图游戏,中间为一个4行4列拼图游戏,“难”为5行5列拼图游戏。拼块以随机顺序排列,玩家用鼠标单击空白块的四周来交换它们的位置,直到所有拼块都回到原位置。 程序设计步骤: 使用一个一维数组存储每个拼块的编号。每一个元素代表一个拼块,初始时元素的数组下标与拼块的编号相同,说明位置正确。并实现拼块的随机放置。 运行结果: 1、创建canvas画布: var context=document.getElementById('puzzle').getContext('2d'); var img=new Image(); img.src='defa.jpg'; img.addEventListener('load',drawTiles,false); var boardSize

HTML5 Canvas游戏开发实战

白昼怎懂夜的黑 提交于 2020-04-03 22:06:23
《HTML5 Canvas游戏开发实战》 基本信息 作者: 张路斌 丛书名: 实战系列 出版社:机械工业出版社 ISBN:9787111419129 上架时间:2013-4-15 出版日期:2013 年4月 开本:16开 页码:336 版次:1-1 所属分类:计算机 更多关于 》》》《 HTML5 Canvas游戏开发实战 》 内容简介 计算机书籍   《html5 canvas游戏开发实战》主要讲解使用html5 canvas来开发和设计各类常见游戏的思路和技巧,在介绍html5 canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读者不仅知其然,而且知其所以然。在本书中,除了介绍了html5 canvas的基础api之外,还重点阐述了如何在javascript中运用面向对象的编程思想来进行游戏开发。    本书在介绍每个游戏开发的过程时,都会包括游戏分析、开发过程、代码解析和小结等相关内容,以帮助读者了解每种类型游戏开发的详细步骤,让读者彻底掌握各种类型游戏的开发思想。最后,还通过数据对比分析,指导读者提升程序的性能,写出高效的代码,从而开发出运行流畅的游戏。 目录 《html5 canvas游戏开发实战》 前  言 第一部分 准备工作篇 第1章 准备工作 / 2 1.1 html5介绍 / 2 1.1.1 什么是html5 / 2 1.1.2

UGUI界面优化记录

戏子无情 提交于 2020-04-03 19:53:31
UGUI界面优化记录 1、在不影响界面效果的情况下,Image去掉FillCenter,减少overdraw 上面两个图是勾上和勾掉后的overdraw对比 2、RaycastTarget用不到的不勾选 在不需要用到RaycastTarget的Text和Image都勾掉!减少不必要的开销! 3、隐藏画布尽量用禁用Canvas的方式 禁用Canvas组件会阻止画布向GPU发起绘图调用,所以该画布不再可见。然而,此时该画布不会丢弃它的顶点缓冲区,它会保留所有网格和顶点,当重新启用时不会触发重构过程,它只会重新绘制画布内容。 此外,禁用Canvas组件不会触发Canvas层级上性能消耗较大的OnDisable/OnEnable回调。禁用子组件时要小心,注意它是否运行性能消耗较大的每帧代码。 来源: https://www.cnblogs.com/woodjay/p/12628293.html

canvas 简易时钟

こ雲淡風輕ζ 提交于 2020-03-30 15:26:44
canvas 简易版时钟 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <title>时钟</title> <style> *{ margin:0; padding:0; } body{ background:#fff; } canvas{ background:#fff; display:block; margin:100px auto; } </style> </head> <body> <canvas id="mycanvas" width='500' height='500'> </canvas> <script> var can=document.getElementById("mycanvas"); var cxt=can.getContext('2d'); function clock(){ //清除画布,每次执行重新绘图,解决时钟模糊,边框有锯齿。 cxt.clearRect(0,0,can

Saving canvas from tkinter to file

…衆ロ難τιáo~ 提交于 2020-03-27 19:49:09
问题 So I followed this post: How can I convert canvas content to an image? And when I tried to do as mentioned in the last suggestion, I get the following problem: When I call it out like this, the image/screenshot is taken too early and therefore the required image won't be captured. Here's the code: from tkinter import * from PIL import ImageGrab root = Tk() cv = Canvas(root) cv.pack() cv.create_rectangle(10,10,50,50) #cv.create_line([0, 10, 10, 10], fill='green') cv.update() #print(root.winfo

使用HTML5技术绘制思维导图

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-26 15:26:16
3 月,跳不动了?>>> 客户常常提到思维导图,喜欢它的结构展示方式,和交互的友好,从图论的角度看,思维导图本质上是一种树,有一个根节点(主题)出发,联想到其他话题,于是分支开花,再分支,有时候也会构成网络结构,由子分支联想到另一个已有分支,但通常不破坏原有结构,常见的思维导图如下 XMind制作的思维导图 使用HTML5制作思维导图应用 这里需要用到一款HTML5图形组件-Qunee for HTML5,Qunee组件本身支持树形布局,所以对于思维导图的大体结构是可以呈现的,到细节的地方就比较多了,包括线条的走向,节点的样式,布局交互,自动吸附,双击编辑等等,本示例没办法面面俱到,所以参照XMind的效果,只实现了部分功能,供用户参考和扩展 连线定制 默认连线为直线,通过定制EdgeUI可以实现曲线效果 function FlexEdgeUI(edge, graph){ Q.doSuperConstructor(this, FlexEdgeUI, arguments); } FlexEdgeUI.prototype = { drawEdge: function(path, fromUI, toUI, edgeType, fromBounds, toBounds){ var from = fromBounds.center; var to = toBounds.center;

Canvas上绘制几何图形

我与影子孤独终老i 提交于 2020-03-26 07:01:36
重要的类自定义View组件要重写View组件的onDraw(Canvase)方法,接下来是在该 Canvas上绘制大量的几何图形,点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形,等各种形状! DrawView.java [java] view plain copy public class DrawView extends View { public DrawView(Context context) { super (context); } @Override protected void onDraw(Canvas canvas) { super .onDraw(canvas); /* * 方法 说明 drawRect 绘制矩形 drawCircle 绘制圆形 drawOval 绘制椭圆 drawPath 绘制任意多边形 * drawLine 绘制直线 drawPoin 绘制点 */ // 创建画笔 Paint p = new Paint(); p.setColor(Color.RED); // 设置红色 canvas.drawText( "画圆:" , 10 , 20 , p); // 画文本 canvas.drawCircle( 60 , 20 , 10 , p); // 小圆 p.setAntiAlias( true ); // 设置画笔的锯齿效果。

android Bitmap学习总结

我们两清 提交于 2020-03-26 05:11:25
http://bbs.chinaunix.net/thread-3682769-1-1.html BitMap类: public void recycle()——回收位图占用的内存空间,把位图标记为Dead public final boolean isRecycled() ——判断位图内存是否已释放 public final int getWidth()——获取位图的宽度 public final int getHeight()——获取位图的高度 public final boolean isMutable()——图片是否可修改 public int getScaledWidth(Canvas canvas)——获取指定密度转换后的图像的宽度 public int getScaledHeight(Canvas canvas)——获取指定密度转换后的图像的高度 public boolean compress(CompressFormat format, int quality, OutputStream stream)——按指定的图片格式以及画质,将图片转换为输出流。 format:Bitmap.CompressFormat.PNG或Bitmap.CompressFormat.JPEG quality:画质,0-100.0表示最低画质压缩,100以最高画质压缩

Android Bitmap 和 Canvas详解

混江龙づ霸主 提交于 2020-03-26 05:05:39
位图是我们开发中最常用的资源,毕竟一个漂亮的界面对用户是最有吸引力的。   1. 从资源中获取位图   可以使用BitmapDrawable或者BitmapFactory来获取资源中的位图。   当然,首先需要获取资源:   Resources res=getResources();   使用BitmapDrawable获取位图   使用BitmapDrawable (InputStreamis)构造一个BitmapDrawable;   使用BitmapDrawable类的getBitmap()获取得到位图;   // 读取InputStream并得到位图   InputStreamis=res.openRawResource(R.drawable.pic180);   BitmapDrawable bmpDraw=newBitmapDrawable(is);   Bitmap bmp=bmpDraw.getBitmap();或者采用下面的方式:   BitmapDrawablebmpDraw=(BitmapDrawable)res.getDrawable(R.drawable.pic180);   Bitmapbmp=bmpDraw.getBitmap();使用BitmapFactory获取位图   (Creates Bitmap objects fromvarious