VML畫連線箭頭,line線加粗,vmlline

2021-07-16 03:25:24 字數 3732 閱讀 1651

一、什麼是vml

vml相當於瀏覽器的畫筆,它可以在瀏覽器中畫出任何你想要的圖形:小到直線、圓形、圓弧、曲線、矩形、圓角矩形、多邊形;大到一張圖畫、乙個動畫、甚至於乙個遊戲。題中既以標明為簡明教程,下邊我們只限於討論使用vml在瀏覽器中畫一些直線、圓形、圓弧等小圖。

vml是微軟2023年前(具體時間不詳)製作推出的,並整合到了ie5+瀏覽器,同樣也是microsoft office art(藝術圖型,如word的藝術文字)的核心結構。vml由微軟visio、autodesk、macromedia等企業推薦給w3c(www最高權利協會),w3c採取、綜合了各方的推薦,於2023年初開始發展svg,並隨後不久推出。svg是綜合vml、gml等的改進(輸出效率、圖型質量、標記擴充套件),被推薦為標準,但svg需要專門的影象閱讀器如(adobe svg viewer),無法直接被瀏覽器引擎解析,以我見,svg更適合於精度向量圖型應用軟體開發、vml則適合應用在web頁,有不少文章說vml已過時,但仁者見仁、智者見智,vml我感覺相當健全(圖型質量、輸出速度),它編寫簡單、瀏覽器可以解析、與html等語言完全相容,它更具有實際web頁應用的可行性、深層開發的可行性。但遺憾的是目前支援vml的瀏覽器僅有ie。

二、vml基礎知識

如果你熟悉html的話,那麼學vml並不是一件複雜的事,因為vml和html幾乎一樣,不僅表現在語法上,還有其對css、js的支援都和html如出一轍。

1.基本語法

•標籤以開頭結尾,也支援空標籤如

•標籤不區分大小寫

•標籤中間可巢狀其他標籤,可以是vml,也可以是html

•屬性的寫法為」parameter=value」,如,屬性值可加雙引號、單引號、也可不加

2.對css和js的支援

•對css支援:

xmlns:v="urn:schemas-microsoft-com:vml"

xmlns:o="urn:schemas-microsoft-com:office:office">

第乙個vml範例title>

v/:*

o/:*

style>

head>

style="z-index:5;position:absolute;left:233;top:150"

from="0,0"

to="200,200"/>

body>

html>

說明:

xmlns:v="urn:schemas-microsoft-com:vml"//關鍵語句,表示建立乙個叫v的xml命名空間,其中v可自行修改

•xmlns:o=」urn:schemas-microsoft-com:office:office」 //表示引用office相關的標記處理擴充套件,web中很少用,下邊不講

•v/:* //關鍵語句,指明xml名域v引用的資料是vml標記語言

.//建立一條直線,vml在瀏覽器中畫圖的語句都是寫在之間

三、通用屬性

下邊這些屬性大部分的vml標籤中都是可用的,為了便於記憶將其分成了三類,其中第二類和html相同、第三類和css相同。

1.line(直線)

a.示例:

建立一條從(0,0)到(200,200)的紅色的邊框為2px的直線

v/:*

b.專用屬性:from 起點座標;

to 終點座標

2.oval(圓)

a.示例:

建立乙個寬400高400邊框為紅色填充為綠色的圓

v/:*

b.專用屬性:無

c.其他說明:其高寬主要由style中的width和height決定

3.rect(矩形)

a.示例:

建立乙個寬100高100的矩形

v/:*

b.專用屬性:無

c.其他說明:其高寬主要由style中的width和height決定

4.roundrect(圓角矩形)

a.示例:

建立乙個圓角矩形

v/:*

b.專用屬性:arcsize 描述圓矩形四角的弧度值,0-0.5,預設值0.05

c.其他說明:其高寬主要由style中的width和height決定

5.arc(圓弧)

a.示例:

建立乙個圓弧

v/:*

b.專用屬性:startangle 圓弧的起點缺口,取值範圍-360-360,預設值-180;

endangle 圓弧的終點缺口,取值範圍-360-360,預設值null(0)

c.其他說明:其高寬主要由style中的width和height決定

6.polyline(多邊形)

a.示例:

建立乙個多邊形

v/:*

b.專用屬性:points 各折點座標,上例表示(0,0)、(30,-40)、(100,100)、(0,0)四個點

7.curve(曲線)

建立一條曲線

v/:*

b.專用屬性:from 起點

to 終點

control1 曲線的第乙個曲度

control2 曲線的第二個曲度

c.其他說明:control1、control2可用都不用、用乙個或用兩個都用

8.shape(任意形狀)

a.示例:

建立任意曲線

v/:*

b.專用屬性:path 路徑(m 起點、 l 畫直線、 c 畫曲線、x 曲線自動閉合、 e 結束)

coordsize 比例(實際寬:width*100/coordsize第乙個值;實際高:height*100/coordsize第二個值)

type 引用模板的名稱

9.shapetype(模板)

a.示例:

模板使用示例

v/:*

b.其他說明:shapetype是專門用來定義形狀摸版的(不可見),而後在由shape標記引用、將模版例項化的按照path子屬性值輸出多邊形(可見)。

10.background(背景)

a.示例:

背景示例

v/:*

11.group(容器)

a.示例:

容器示例

v/:*

b.其他說明:當使用group後,容器內圖形的left、top、width、height等值都是相對group的值。

五、二級標記

二級標記可以看作是對有限的屬性進行擴充套件,就像css和html的關係一樣,利用它我們可以做出更漂亮的圖畫出來,如上邊background(背景)中就使用了fill二級標記,下邊我們再來看下如何利用二級標記畫一條帶箭頭的直線:

二級標記示例

v/:*

例子中的stroke即為二級標記,它可以用來設定邊框樣式,除此之外還有shadow(陰影)、fill(填充)、extrusion(立體3d)、textbox、imagedata(背景)等二級標記。二級標記也有自己的屬性,我們只須通過設定這些屬性就能畫出各種漂亮的圖來。二級標記的使用也非常簡單,直接巢狀於圖形標籤中即可

js vml 畫圖 2008-10-28 21:00

wawamind beta v1.0

v/:*

body

.wen //滑鼠按下 function msdown() { if(event.button==1){ var isclickscroll= (event.y

Flex中畫箭頭

第一種參考 畫箭頭 paramstart開始節點 paramend結束節點 paramcolor線條顏色 paramalpha透明度 paramradius箭頭的大小 publicfunctiondrawarrow start point,end point,color uint 0x000000 ...

css畫橫線箭頭 CSS繪製箭頭

實際需求中,很多時候都會有箭頭的情況,只不過一開始總是喜歡找別人寫好的,隨著需求的增加,很難通過修改來滿足需求,所以理解原理自己動手才是萬難的根本解決辦法。一 繪製三角 容器 樣式 container width 0 height 0 border 50px solid border color r...

iOS(CoreGraphics)畫帶箭頭的框

自己畫帶箭頭的框,需要匯入coregraphics.framwork庫 新建乙個整合uiview 的類,對uiview中的drawrect cgrect rect方法重寫如下。繪圖操作 繪製帶箭頭的矩形 void drawarrowrectangle cgrect frame 重寫繪圖,呼叫剛才繪圖...