我在谷歌搜索时看到SVG“死了”。虽然我不同意,有没有人可以告诉我更多/未来基于矢量的格式来表示2d / 3d图形?那么VML呢?我应该使用什么格式在Web上表示2D和3D图形?
我在网上玩图形,我想知道我是否使用过时的技术。
答案 0 :(得分:7)
微软在IE9中支持SVG,并详细解释了为什么他们在IE博客上这样做:
http://blogs.msdn.com/b/ie/archive/2010/03/18/svg-in-ie9-roadmap.aspx
SVG的主要优点是它成为DOM的一部分,因此您可以使用CSS来设置它的样式,并使用javascript来修改它。相比之下,画布必须完全重绘每一帧。这使得画布适用于频谱分析仪,视频处理,快节奏游戏和其他非渐进动画。 SVG更适合渐进式动画。
就3D而言,未来是WebGL,这是一个比OpenGL ES更薄的垫片,但它远远不够。微软并没有承诺支持它,这意味着它不会出现在IE9中。也许IE10,也许不是。
如果您确实使用SVG,我建议使用svgweb来抽象浏览器差异(回退到过时浏览器上的Flash小程序)。
答案 1 :(得分:5)
您可以试用Raphaël JavaScript库。
它易于实现,并提供与SVG相同的UI功能(以及更多!)。
答案 2 :(得分:5)
如果是SVG,那么你最好的方法就是svg.js。它更好地支持SVG,它是Raphaël(拉伸量为31k)的大小(4.5k gzip)的一小部分。它还具有非常直观的语法。
答案 3 :(得分:4)
所有主流浏览器,包括ie9,firefox,safari和chrome都开始支持svg,作为即将推出的html5标准的一部分。我不会称之为“死”
答案 4 :(得分:4)
这篇文章已经相当晚了......但我认为值得重新解决,因为你的问题已经在所有html5谈话中再次出现。
SVG是一种矢量绘图格式,它还支持动画,计时和Javascript DOM支持。换句话说,它是静态和动态矢量图形的独立格式;你可能会说这是一个以网络为中心(或以屏幕为中心)替代EPS / PDF。 html5 canvas标签不是一种格式,而是一种用Javascript绘制(静态图像)到屏幕的方法 - 这就是全部;它与SVG之间没有竞争,因为它们有着完全不同的目的。
大多数其他矢量“格式”涉及插件(Flash)或硬件支持(webGL)。具有讽刺意味的是,您提到的VML格式现已弃用,转而支持SVG。
回答你的问题:SVG现在是网络的标准矢量格式。希望在不久的将来,我们也会看到它也用于视频/动画。
答案 5 :(得分:1)
2D:SVG 3D:X3DOM或webGL直接