SVG 繪製箭頭參數說明

先說畫法: 首先通過在<def>標籤裏面使用<marker>標籤定義一個定位圖案,這個標籤需要寫在<svg>標籤裏面

<svg>
<defs>
      <marker id='markerArrow' viewBox="0 0 40 24" markerWidth='20' markerHeight='12' refX='10' refY='6' orient='auto'>
      		<path d='M2,0 L10,6 L0,10 Z' stroke="#4b5159" stroke-width="2"/>
       </marker>
</defs>
</svg>

之後只需要在其他地方通過id名字引入這個定義好的圖案就好,這個過程就跟我們定義變量並使用一樣是同樣的流程,實際的箭頭圖案就是<path>畫的這一部分。

然後就是在其他path上面使用它(ps:“…”是其他一些參數)

 <path ....... marker-end='url(#markerArrow)'/>

接下來講講參數的理解: marker標籤你可以看做是一個new聲明,聲明標籤下定義的svg圖像是一個可以複用的東西,viewBox指的是視圖框大小,你可以把它看做一個用於縮放原始繪圖(marker下繪製的圖像)大小的工具,markerWidth和markerHeight不用多解釋了吧,注意一點是這個大小會決定你圖像能夠顯示的範圍。orient值的是你連接的這條線不一定是一個直線,那麼連接的時候整個marker區域的朝向該是如何的,這個orient爲auto就是按切線的位置作爲朝向。
重點是:refX 和 refY, 它們指的是你的這個marker(矩形區域)在連接到其他路徑上的時候,實際的錨點位置, 畫個圖就能很好理解
在這裏插入圖片描述在這裏插入圖片描述

一條路徑上面,這個矩形區域就是你要顯示圖像的區域,它的長寬就是你設置的width和height,而它放在路徑上的時候,是以ref這個點作爲基準去放的,比如第一個圖裏面,我的ref座標(座標都是相對於marker矩形框區域定的,區域左上角座標爲(0,0))是(0,5),那麼我marker-end的時候,這個(0,5)的點就會作爲連接點去和路徑的末端相連。比如第二個圖我ref的座標是(10,5)那麼marker-end的時候,這個ref點就會和末端相連。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章