为什么要使用HTML 5 Canvas标签?

Dra*_*aco 13 html javascript html5

原谅我的无知,但我是HTML 5竞技场的新手,从未使用过Javascript的图形.

我正在做一些阅读并遇到Canvas标签,并且源声明canvas标签充当图形容器,用于通过使用Javascript在网页上呈现图形.

我的问题是,为什么我需要使用Canvas作为占位符来渲染图形,而不是使用其他可以用作图形占位符的任意标记?

650*_*502 24

一个<canvas>标签是完全一样的<img>标签,与而不是从网络加载图像,你可以用JavaScript代码,自己绘制它的差异.您可以绘制线条,圆形,填充多边形,渐变和矩阵变换图片.您还可以在循环中重绘画布内容以制作动画.

要了解使用普通画布2d(没有webgl,只是标准的2d渲染)可以做些什么,请查看这个小型演示,或者如果您的浏览器太旧并且不支持画布,请查看此视频.

它是纯粹的javascript,没有从网络加载,一切都在浏览器中计算,包括纹理和用于envmapping部分的光线追踪图像.全部在一个4Kb html文件中.

你真的认为你可以使用常规<div>s 做同样的事吗?

编辑:

对于具有可读源的更简单的演示,您可以查看这个旋转的二十面体.

  • @Draco:好的......这是给你的秘密.javascript中的"第三部分库"只是由javascript代码组成.真.你可以用javascript编写一个javascript"第三部分库"可以做的事情.没有魔法......只是代码.我的旧汇编程序环形演示中使用的技术可以追溯到在软件中通过绘制所有需要的像素完成3d渲染.Javascript torus使用的是canvas 2d基元,它们确实经常是硬件加速的.参见例如http://stackoverflow.com/questions/4774172/image-manipulation-and-texture-mapping-using-html5-canvas/4774298#4774298 (4认同)

Ode*_*ded 5

Canvas打算用于图形处理,而div不是.在语义上,你应该使用Canvas.