SVG和VML区别杂谈

Stella981
• 阅读 541

SVG和VML区别杂谈

很多组织一直在做这两种动态矢量语言的统一工作,SVG和VML的初衷不一样,SVG是为了集大成,VML却是为了方便Word向Web的迁移,所以相对于VML的傻瓜和方便,SVG简直就疯狂的强调其的可扩展性....

一个简单的例子,一条直线,如果要加一个箭头,VML里面直接在stroke里面添加一个属性startarrow或者endarrow就搞定了!
可以添加包括block,classic,diamond,oval,open,chevron,doublechevron这么多种的箭头,圆形的,钻石型的,箭头型的。我们基本用得着的都有。何其的方便!虽然当时没有体会,知道有一天看见SVG的恶心做法:

SVG,则要先定义一个marker标记,里面去画出箭头的形状,然后再链接到直线上。
更恶心的是,因为默认只有顺着线条切线方向的箭头,所以如果起始端需要箭头,使用固定角度是不行的,只有重画一个反方向的箭头,再链接过去....
这些我也就忍了,最后费了老大劲也算是搞定了,最后的最后,我突发奇想,想更改一下线条的颜色,这在VML中当然很容易,箭头的颜色也跟着变化了,结果SVG中非常的崩溃,居然箭头至今只能提供黑色(bugs.launchpad.net/inkscape/+bug/165865).....
虽然有一个更加恶心的hack,虽然这个bug已经上报到SVG标准里面,并且优先级挺高,可要实现估计得些时日。

做这个东东也有些时日了,从最初就想做得完善一些,如果质量能够达到产品级别就最好了,感觉越钻得深,两者的区别就越多,虽然不能武断的评论谁好谁劣,但总觉得SVG为了可扩展,牺牲了太多太多的方便性。

多比图形控件出现简化了的这种开发难度,它是一款基于Web的矢量图形控件,能够检测浏览器类型,自动选择VML或SVG方案进行做图, 类似于网页上的Visio控件,是目前国内外最佳的基于web矢量图解决方案,可以用于电力、化工、煤炭、工控组态软件、仿真、地理信息系统、工作流、复杂报表 工业SCADA系统、ERP流程设计系统图形管理、图形拓扑分析、GIS地理信息系统系统工程制图等领域。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
AndroidStudio封装SDK的那些事
<divclass"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,2.55,5z"id"raphael
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
3年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Easter79 Easter79
3年前
SVG和VML区别杂谈
SVG和VML区别(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.duobee.com%2F)杂谈
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这