PHP繪圖類別
出自六年制學程
home.jendo.org/SVG/svgdraw.php
將陣列化為子串
功能
- 畫直角座標系:性質coordinate為真
- 畫方格紙:性質squareLattice為真
- 畫函式:性質functions
- 畫一次方程式:函式名drawLine
- 畫拋物線:函式名parabola
- 畫借錢投資:函式名borrowMoneyToInvest
- 畫連點成線:函式名value2point
- 畫標準圓:函式名stdcircle
- 畫2016年之前的國中行政員額:函式名「國中行政」,畫左右無限延伸之折線
- 畫多邊形:性質polygons
- 畫線段:性質lineSegments
- 畫字:性質alnums
- 畫圓(圓心為直角座標,半徑為SVG座標):性質circles,其實是畫點,畫圓由長短軸相等之橢圓表達。
- 畫橢圓(中心、x軸半長、y軸半長皆為直角座標):性質ellipses
- 畫橢圓弧(中心、x軸半長、y軸半長皆為直角座標):性質arcs
基本方法
- style:用字串索引陣列為唯一的引數,決定著色、框線、箭頭、透明度
- xc2p:直角座標轉 SVG 座標
- yc2p:直角座標轉 SVG 座標
- getDecimals:取一數的小數部分或小數位數
- getPureNumber:取一數的整數部分
零次物件
基本特性:
- 使用 SVG 座標系。
- 使用標籤繪圖。
- 將字串加入 $this->extraPrefix 或 $this->extraSuffix 。
物件列表:
- line(直線),屬性有x1(第一點x座標)y1(第一點y座標)x2(第二點x座標)y2(第二點y座標)。
- polyline(多點成線),諸屬性如下:
- points:多點,點與點用空白間開,同一點 x y 座標以逗點間開。
- polygon(多邊形),也可以取五點畫出一個星形。諸屬性如下:
- points:多點,點與點用空白間開,同一點 x y 座標以逗點間開。
- circle(圓),諸屬性如下:
- cx(圓心x座標),cy(圓心y座標),r(半徑)
- rect(矩形),諸屬性如下:
- width(寬),height(高),省略起點則以原點為起點,x(起點x座標),y(起點y座標),rx(圓角x半徑),ry(圓角y半徑)
- ellipse(橢圓),諸屬性如下:
- cx(中心x座標),cy(中心x座標),rx(x軸半長),ry(y軸半長)。
- path
- 線
- 二次貝茲曲線
- 三次具茲曲線
- 橢圓弧
- text(文字)
- image(圖)
- foreignobject(外部物件)
一次物件
基本特性:
- 畫出一系列多個同類標籤或標籤群。
- 性質為陣列,用 foreach 一一取出元素,每一元素也是陣列,指示畫出一個標籤或一組標籤群。
- 除了點(圓)的大小用 SVG 的尺度點之外,其他都會轉為直角座標尺度
物件列表:
- polygons(畫多邊形):取每一個 polygon 的 points,rotate 索引的元素值,配合 style 函式可用的諸索引值。
- lineSegments(線段):取每一個 lineSegment 的註標索引二維陣列(決定兩點),配合 style 函式可用的諸索引值。
- alnums(畫字):取每一個 alnum 的註標索引二維陣列決定位置,word索引決定內容,color,size,decoration,font-style索引決定外觀。
- circles(畫圓)(圓心為直角座標,半徑單位為SVG中的點數):取每一個 circle 的註標索引二維陣列決定圓心,radius決定半徑,配合 style 函式可用的諸索引值。
- ellipses(畫橢圓)(中心、x軸半長、y軸半長皆為直角座標):取每一個 ellipse 的註標索引二維陣列決定中心,rx,ry索引的元素值決定兩軸,配合 style 函式可用的諸索引值。
- arcs(橢圓弧)(中心、x軸半長、y軸半長皆為直角座標):取每一個 arc 的註標索引二維陣列決定弧的起點與終點,rx,ry索引的元素值決定兩軸,xRotation,大或小弧,順時針決定弧的形狀,配合 style 函式可用的諸索引值。
二次物件
用函式結合多種一次物件,由於一次物件已改為直角座標系,所以不受 SVG 座標系的影響。
- 逐點代值
- 零次多項式
- 一次多項式
- 二次多項式
- 其他函式,如:
- 三次以上多項式
- sinValue
- cosValue
- 借錢投資(borrowMoneyToInvest)
- 非逐點代值
- 一次方程式(drawLine)
- 拋物線(parabola)
- stdcircle:傳入角度,畫出橘色標準圓、黑色半徑、藍色sin截距、紅色cos截距、虛線cos投影等五個一次物件。
- value2point(連點成線):傳入一個陣列,各元素:索引為x、元素值為y,連點成線得到 polyline ,應改為一次物件。如擲骰子得大數法則、國中班級分布。加上左側延伸與右側延伸,就可以併入「國中行政」。
- 國中行政:以(46,19.7)為折點的左右兩個線段,兩側均延伸到圖的邊緣。應整合到「連點成線」。