问题标签 [vml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cross-browser - 在浏览器中显示矢量图形
我需要在我正在处理的网站中显示一些交互式(附加 DOM 侦听器等和事件处理)矢量图形。W3C 推荐了 SVG,尽管 Internet Explorer 支持仍然无法识别这种格式,这是必须的(对于公共网站)。IE 处理 VML,甚至还有一些 JavaScript 库可以根据浏览器(SVG 与 VML)进行一些类似画布的绘图 - excanvas、Dojo Toolkit 的 GFX等等。尽管它们都不能从给定的标记中显示 SVG 图像,但这会很好并且可以接受。
所以这个问题实际上由几个部分组成:
- 是否有任何跨浏览器 Javascript 库可以显示来自给定标记(不是强制性 SVG)的矢量图形并提供附加到 DOM 事件的可用性?
- 如果没有,哪种最流行的嵌入式浏览器技术最适合做这样的任务?我可以从 Flex/Flash、Java 小程序中进行选择。由于 Windows 锁定,Silverlight 不是一个选项。
[编辑]谢谢大家的意见/建议。以下只是我对此事的一些随机笔记/结论:
- 我需要的交互性级别是能够检测正在显示的矢量图像上的 DOM 事件——鼠标悬停、鼠标悬停、单击等——以及对它们做出反应的能力,比如改变背景颜色、显示对话框等。
- 坚持使用 SVG 格式的想法非常好,因为它在许多浏览器上都是原生的,除了最流行的浏览器 - IE。在尝试显示动态 SVG 之后,我意识到 IE 版本 7 是最有问题的。由于浏览器不兼容,有太多麻烦。
- Cake 似乎是一个很棒的 Javascript 框架,尽管我无法获得在 IE7 上运行的示例。
- Java Applets - 我最喜欢这个想法,因为我可以使用 Apache Batik 库,一个高质量的 SVG 渲染器。但是,Batik 是一个非常大的库,我负担不起部署一个只有几兆字节的小程序。
- 我决定坚持使用 Flex 选项。我找到了一个不错的矢量图形库Degrafa。它使用自己的标记格式,但是它识别 SVG 路径表示法,因此在我的情况下,使用 XSLT 转换我的 SVG 或仅解析它们将非常容易。
[编辑 2 ] 出现了更多评论。我想澄清一下,“Windows 锁定”是指 Silverlight 通常在 Windows 上运行的情况,更具体地说,是 IE。我怀疑它是否是其他系统上可接受的解决方案(例如 Flash 或 Java Applet)。是的,我毫不怀疑可以在任何系统上启动 Silverlight 应用程序,尽管我担心这对普通用户来说会花费太多精力。
@Akira:您对 IE7 上的那些“SVG 渲染器”有什么问题吗?我总是抛出 Javascript 错误。
math - 如何通过两个点和半径大小计算椭圆的中心
在为 Internet Explorer 开发基于其自己的 VML 格式的 SVG 实现时,我遇到了将 SVG 椭圆弧转换为 VML 椭圆弧的问题。
在 VML 中,圆弧由以下公式给出:椭圆上两点的两个角度和半径长度;在 SVG 中,圆弧由以下公式给出:椭圆上两点的两对坐标和椭圆边界框的大小
所以,问题是:如何将椭圆上两点的角度表示为两对坐标。一个中间问题可能是:如何通过椭圆曲线上一对点的坐标找到椭圆的中心。
更新:让我们有一个前提条件,即通常放置一个椭圆(其半径平行于线性坐标系轴),因此不应用旋转。
更新:这个问题与 svg:ellipse 元素无关,而是与 svg:path 元素中的“a”椭圆弧命令有关(SVG 路径:椭圆弧曲线命令)
charts - 他们如何在 stackoverflow 上绘制图表/图形?
我曾经花了很长时间学习 VML 并为网站创建图表,但由于 VML 只能在 Internet Explorer 中运行,所以现在它并不好。
我注意到 stackoverflow 在我的个人资料页面上有图表,在“声誉”下,但我无法看到他们是如何做到的。
任何人都可以建议一种方法来创建适用于所有浏览器的客户端图表或图表吗?我不想使用动态创建图像文件的服务器端方法。我也可能希望使用 JavaScript 与图表进行交互。
[编辑——我想画的不仅仅是图表。也许还有小图表!]
谢谢。
javascript - 如何在 Vista Sidebar 中绘制程序图形?
如何在 Vista 侧边栏小工具中绘制程序图形?
我有一个随时间收集数据的小工具,我想绘制动画图。我目前的方法是使用我在计时器滴答时从 JScript 更新的 VML 绘制图形。这是最好的方法吗?我可以将 DLL 函数中的位图位作为源返回到<IMG>
. 将位图位嵌入 HTML 本身(并再次通过 JScript 更新它)?我很想听听一些想法。
谢谢!
flash - 用于通过 Java2D 渲染矢量图形格式的开源库?
我有哪些选择可以将 Java2D 编码的图形渲染为矢量图形格式,例如 EPS、SWF、SVG、VML、PDF 和其他我可能还没有听说过的开源库?
Batik是用于渲染 SVG 的最广泛使用的库。还有哪些其他选择?
iText广泛用于呈现 PDF。是否有一些功能较少但可能更简单的东西?
对于从 Java2D 渲染 SWF (Flash),我发现Flagstone Software 的Transform SWF非常有效,即使不直观。
哪些不太受欢迎的库或刚起步的项目值得一看?
c# - 在 C# 中将 VML 渲染为位图
C#/.NET 中有没有办法将 VML 渲染为位图?
我认为这应该很容易,但我似乎无法在 .NET 文档中找到类似的内容。
javascript - 如何在浏览器中检测对 VML 或 SVG 的支持
我正在编写一些 javascript,需要在 SVG 或 VML 之间进行选择(或两者兼而有之,或其他东西,这是一个奇怪的世界)。虽然我知道目前只有 IE 支持 VML,但我更愿意检测功能而不是平台。
SVG 似乎有一些您可以使用的属性:例如 window.SVGAngle。
这是检查 SVG 支持的最佳方式吗?
VML有什么等价物吗?
不幸的是 - 在 Firefox 中,我可以很高兴地在 VML 中进行所有渲染而不会出错 - 屏幕上什么也没有发生。从脚本中很难检测到这种情况。
php - 有没有办法将 VML 文档转换为位图图像?
我一直在寻找一种从 VML 文档中获取位图的方法。事实上,我正在研究一些使用该标签的库,所以除了 IE(当然)之外我没有任何问题,因为我在 IE 中使用 ExCanvas,但我想从生成的“位图”画布”(实际上是 VML)。
我一直在寻找一些方法来从 VML 中获取 JS 中的位图,但我放弃了这个想法,现在我想找到一个能够获取 VML 字符串并将其转换为位图的服务器端库图片。我的首选语言是 PHP,但如果这种语言没有,那也没关系。我还查看了一个可以做到这一点的 Java 小程序,但实际上没有签名是不可能的,这是不可能的。
感谢你的回复 !
javascript - 如何将上面的代码移动到 jQuery 插件中
我正在为 jQuery 编写一个插件。事实证明,为了使用它,页面 HTML 必须包含以下代码
该插件仅供个人使用,但我想隐藏其中的所有细节。如何使用 JavaScript + DOM 将上面的代码移动到插件中。
此外,我仅将此代码用于 IE,对于其他浏览器,我有不同的代码可以正常工作。因此,欢迎使用 IE 特定的解决方案。
asp.net - 是否有任何工具可以将旧版 VML 转换为 SVG?
只是想知道是否有人遇到过一种工具或任何东西来简化将 VML 转换为 SVG 或其他一些现代格式(Silverlight、flash)的过程。
我正在处理一些旧版 VML 浏览器渲染,我想让它跨浏览器兼容。现在 vml 正在服务器端生成。
如果有将 VML 标记映射到 SVG 的图表(以表格格式作为备忘单或其他内容)也会很有帮助。
谢谢