zoukankan      html  css  js  c++  java
  • .NET基础示例系列之十七:VML绘制中国地图

     

    VML相当于IE里面的画笔,能实现你所想要的图形,而且结合脚本,可以让图形产生动态的效果。同时对VML图形进行缩放,变换位置也变得异常容易.对于VML的基本概念,网上有若干个版本的中文教程,大家可以去看看,写得比较详细.这里只讲几个简单的常用到的概念:

    1.坐标

    VML元素通过CoordSize属性来描述它的坐标, <v:shape CoordSize="2800,2800" />这里的2800,2800 是横纵坐标被分成了2800个点. 定义的坐标只是相对的,真正显示的图形大小还需要 style="500px;height:500px" 来定义.

     

    2.Shape

    VML中的shape元素可以实现你所需要的任意形状,例如上面的地图中的各省.shape包含以下常用的属性:

    最主要的属性是Path,它包含以下几个具有特殊意义的字母(不包括x,y)

    m x,y:moveto把画笔移动到 (x,y)

    l x,y:lineto从当前点到(x,y)画一条线;可以给连续的几个点,VML会连续画出来直到遇到 x 命令;

    x:close结束一条线;

    e:end结束画图

    于是为path属性赋值看起来像这样:

    path=" m231,825 l238,827,244,828,252,830,257,828 xe

     

    另外一些属性包括:

    fillcolor图形的填充色.strokecolor图形边缘线的颜色.title鼠标上移时显示的提示文字.

     

    3.Group

    Group用于将多个vml元素组织在一起,这样Group中的所有元素将使用Group的坐标系.同时,group进行缩放时,将使Group中的所有元素大小发生变化.当页面上有多个vml元素时,使用Group将使它们变得易于控制.

     

    对于一些简单应用,使用VML的好处包括:

    (1)可以实现任意想要的形状,轻松实现阴影等效果.

    (2)由于是一种标识语言,浏览器端使用脚本操作VML元素变得容易.例如上面的地图中可以简单的使用一句话实现改变某个省份的颜色.

    (3)VML所绘制的是矢量图形,缩放不会影响图形的质量.

     

    VML的限制在于:

    (1)浏览器局限于IE5.0+

    (2)由于是用于客户端的标记语言,使用服务器端代码操作VML元素比较困难。

    (3)对于地图这样的不规则图形,需要人工去获得边界的坐标。

    (4)微软不再更新vml.据说有更牛的东东推出,SilverLight

     

  • 相关阅读:
    linux配置显示git分支名
    tensorrt int8量化原理几点问题记录
    cuda Global Memory Access
    cuda shared memory bank conflict
    一种简单的死锁检测算法
    n = 5x+2y+z,程序优化:unroll loop
    c++ detect && solve integer overflow
    Tensorpack.MultiProcessPrefetchData改进,实现高效的数据流水线
    tensorflow layout optimizer && conv autotune
    python 产生token及token验证
  • 原文地址:https://www.cnblogs.com/morvenhuang/p/744087.html
Copyright © 2011-2022 走看看