以前在861部隊的時候學習的是特殊版本的SVG子產品,一直以為使用的是正統的SVG,13年出來的時候才發現自己錯的很離譜,是以重新學習了一下将筆記奉上~~~
SVG是定義對象的,在perl裡面就是個對象要先建立:
my $svg = SVG->new(width=>300, height=>300);
my $svg = SVG->new;
對于矩形來說rect:
x 屬性定義矩形的左側位置(例如,x="0" 定義矩形到浏覽器視窗左側的距離是 0px)
y 屬性定義矩形的頂端位置(例如,y="0" 定義矩形到浏覽器視窗頂端的距離是 0px)
rx 和 ry 屬性可使矩形産生圓角。
style 屬性用來定義 CSS 屬性
CSS 的 fill 屬性定義矩形的填充顔色(rgb 值、顔色名或者十六進制值)
CSS 的 stroke-width 屬性定義矩形邊框的寬度
CSS 的 stroke 屬性定義矩形邊框的顔色
CSS 的 fill-opacity 屬性定義填充顔色透明度(0 - 1)
CSS 的 stroke-opacity 屬性定義筆觸顔色的透明度(0 - 1)
CSS 的 opacity 屬性定義整個元素的透明值(0 - 1)
部落客認為所有的style屬性适用于所有的圖形界面;
對于circle,cx 和 cy 屬性定義圓點的 x 和 y 坐标。如果省略 cx 和 cy,圓的中心會被設定為 (0, 0),r 屬性定義圓的半徑;
對于ellipse,cx 屬性定義圓點的 x 坐标,cy 屬性定義圓點的 y 坐,标rx 屬性定義水準半徑,ry 屬性定義垂直半徑;
對于line、points、polygon、polyline、text差不多定義坐标即可;
path比較複雜,常用的是M、C、Z、L,大寫表示絕對定位,小寫表示相對定位;
對于漸變來說,<linearGradient> 标簽必須嵌套在 <defs> 的内部。
當 y1 和 y2 相等,而 x1 和 x2 不同時,可建立水準漸變
當 x1 和 x2 相等,而 y1 和 y2 不同時,可建立垂直漸變
當 x1 和 x2 不同,且 y1 和 y2 不同時,可建立角形漸變
對于perl裡面的子產品來說:
#!/usr/bin/env perl
use strict;
use warnings;
use SVG;
my $svg = SVG->new;
...
print $svg->xmlify;
或者:
my $out = $svg->xmlify;
open SF, ">tmp.svg";
print SF $out;