2

在我学习 javascript 的过程中(这似乎是我最近对 ​​SO 提出的问题)我发现了这个用于绘图的 API http://www.c-point.com/javascript_vector_draw.htm

与此同时,我一直在用图形做一些实验,这些实验往往会影响要绘制的东西的数量。这家伙正在用 div 绘图,图像的每个正方形部分都是一个 div。您可以通过在页面上检查他的示例来轻松检查它。

他去制作 div 1px/1px 来绘制一个像素

现在我要问的是:

这是最好的方法吗?当一幅画更精致时,它似乎很重。你会推荐哪些其他方法?

这个Javascript 绘图库?已经有几个指向库的链接,所以不需要在这里放任何链接。

我在这里看到了关于绘图的其他问题。我只是想知道用 div 绘制到哪一点并不可怕!

4

3 回答 3

2

对于矢量绘图,像Raphael这样的库在 SVG 和 VML 上提供了一致的 API。

对于光栅绘图,您可以将 <canvas> 用于支持画布的浏览器。

对于 IE,您将默认使用 DIVS 或让您的绘图 API 使用 silverlight(如果可用)。请注意,为了提高效率,div 不应为 1px x 1px,而应根据您绘制的形状的需要而定。20 个相同颜色的 1 像素 div 应该是 1 个 20 像素宽的 div。通常,您不会与 div 方法进行非常互动,因为您的目标浏览器 (IE) 的 DOM 访问速度很慢

编辑:链接库确实做了 div 优化。

对于纯 HTML 解决方案(无 SVG/VML/canvas),您使用 css 和自定义边框宽度:

于 2008-12-09T20:09:53.553 回答
0

不,这是最糟糕的方法,在出现 SVG 或画布元素之前就已经详细说明了......这会非常占用内存并且非常慢。一个有趣、有趣的 hack,但在现实世界中并不真正可用。

除了其他线程中提到的库之外,我还看到了使用 sprite 制作的游戏,即画布/SVG/VML。一些图像绝对定位。还有一个很棒的 hack ,使用5k JavaScript 编码第一人称 3D 射击游戏,使用动态生成 XBM 图像。但是对这种图像格式的支持已从最新版本的 Windows 中删除...... :-(

想一想,你也可以使用“data:image/png;base64”协议制作图片,但是编码会很慢,IE浏览器会被淘汰。

于 2008-12-09T22:04:11.420 回答
0

在开始弄乱 1px div 之前,请查看 dojox.gfx:docstestsdemos(最后两个链接指向测试服务器上为调试而非生产优化的夜间快照)。

它使用原生图形:SVG、VML、Silverlight 或 Canvas — 涵盖所有主要浏览器(IE、Firefox、Safari/Webkit、Opera)的客户端上可用的任何图形。

于 2008-12-10T01:12:42.240 回答