模組:FunctionGraph/doc
外觀
此頁面為 Module:FunctionGraph 的說明文件
| 此頁面是Module:FunctionGraph的模組文件。 此頁面可能包含了模板的使用說明、分類和其他內容。 |
| 此模組文件已評為alpha版,可接受第三方輸入,並可用於少量頁面以檢查是否存在問題,但需要受到檢查。歡迎提供新功能或修改其輸入輸出機制的建議。 |
本模組為維基百科高效能無 JavaScript 之 SVG + HTML/CSS 混合數學函數繪圖引擎,用於驅動 {{函數圖形}}。
核心功能與子模組架構
[編輯]- Module:FunctionGraph:主入口與數值取樣管線(支援 2D 顯函數、極座標
#polar:、參數方程、質數語法糖質數(x)/π(x)、samplingMode四種取樣模式、一階與二階微分佇列斷點探測及狄拉克 脈衝合成)。 - Module:FunctionGraph/MathEngine:2D 步進正方形(Marching Squares)隱函數引擎、3D 空間投影、法向量雙面光照(Flat Shading)、畫家演算法(Z-sorting)、3D 隱函數等值面網格(Surface Nets)、六面體截面裁切(Sutherland-Hodgman)與 3D 複變模態曲面圖引擎。
- Module:FunctionGraph/SVGRenderer:2D、極座標、複變定義域着色圖與 3D 圖表之 SVG + HTML 混合排版與智慧節流 Tooltip 產生器。
- Module:FunctionGraph/TextRenderer:數學表達式遞迴下降語法分析器(AST Parser)、圖例 SVG 數學排版引擎與單次快取複用之 MediaWiki
<math>Strip Marker 轉譯器。 - Module:FunctionGraph/RenderUtils:色彩光影運算、連分數有理逼近刻度、單調三次 Hermite 樣條插值與螢幕像素弧長等距取樣工具庫。
- Module:FunctionGraph/style.css:外部 TemplateStyles 樣式表,負責文字疊加定位與無須
pointer-events之父子包裹式:hover互動氣泡框。
函數介面
[編輯]functionGraph
[編輯]繪製 2D 顯函數、隱函數、極座標、參數式與 3D 函數圖形:
{{#invoke:FunctionGraph|functionGraph|sin(x)|start=-5|end=5}}
xy圖例 (-4.92): 0.98 (-4.76): 1 (-4.59): 0.99 (-4.43): 0.96 (-4.3): 0.91 (-4.17): 0.86 (-4.06): 0.8 (-3.96): 0.73 (-3.87): 0.67 (-3.78): 0.6 (-3.7): 0.53 (-3.61): 0.46 (-3.54): 0.39 (-3.46): 0.31 (-3.39): 0.24 (-3.31): 0.17 (-3.24): 0.1 (-3.17): 0.02 (-3.09): -0.05 (-3.02): -0.12 (-2.95): -0.19 (-2.87): -0.26 (-2.8): -0.34 (-2.72): -0.41 (-2.64): -0.48 (-2.56): -0.55 (-2.47): -0.62 (-2.39): -0.68 (-2.29): -0.75 (-2.19): -0.81 (-2.07): -0.88 (-1.95): -0.93 (-1.81): -0.97 (-1.64): -1 (-1.47): -1 (-1.32): -0.97 (-1.17): -0.92 (-1.05): -0.87 (-0.94): -0.81 (-0.84): -0.74 (-0.74): -0.68 (-0.65): -0.61 (-0.57): -0.54 (-0.49): -0.47 (-0.41): -0.4 (-0.33): -0.33 (-0.26): -0.25 (-0.18): -0.18 (-0.11): -0.11 (-0.04): -0.04 (0.04): 0.04 (0.11): 0.11 (0.18): 0.18 (0.26): 0.25 (0.33): 0.33 (0.41): 0.4 (0.49): 0.47 (0.57): 0.54 (0.65): 0.61 (0.74): 0.68 (0.84): 0.74 (0.94): 0.81 (1.05): 0.87 (1.17): 0.92 (1.32): 0.97 (1.47): 1 (1.64): 1 (1.81): 0.97 (1.95): 0.93 (2.07): 0.88 (2.19): 0.81 (2.29): 0.75 (2.39): 0.68 (2.47): 0.62 (2.56): 0.55 (2.64): 0.48 (2.72): 0.41 (2.8): 0.34 (2.87): 0.26 (2.95): 0.19 (3.02): 0.12 (3.09): 0.05 (3.17): -0.02 (3.24): -0.1 (3.31): -0.17 (3.39): -0.24 (3.46): -0.31 (3.54): -0.39 (3.61): -0.46 (3.7): -0.53 (3.78): -0.6 (3.87): -0.67 (3.96): -0.73 (4.06): -0.8 (4.17): -0.86 (4.3): -0.91 (4.43): -0.96 (4.59): -0.99 (4.76): -1 (4.92): -0.98
{{#invoke:FunctionGraph|functionGraph|floor(x)|start=-3|end=3|equal_scale=yes}}
xy圖例 (-2.97): -3 (-2.91): -3 (-2.85): -3 (-2.79): -3 (-2.73): -3 (-2.67): -3 (-2.61): -3 (-2.55): -3 (-2.49): -3 (-2.43): -3 (-2.37): -3 (-2.31): -3 (-2.25): -3 (-2.19): -3 (-2.13): -3 (-2.07): -3 (-2.01): -3 (-1.95): -2 (-1.89): -2 (-1.83): -2 (-1.77): -2 (-1.71): -2 (-1.65): -2 (-1.59): -2 (-1.53): -2 (-1.47): -2 (-1.41): -2 (-1.35): -2 (-1.29): -2 (-1.23): -2 (-1.17): -2 (-1.11): -2 (-1.05): -2 (-0.99): -1 (-0.93): -1 (-0.87): -1 (-0.81): -1 (-0.75): -1 (-0.69): -1 (-0.63): -1 (-0.57): -1 (-0.51): -1 (-0.45): -1 (-0.39): -1 (-0.33): -1 (-0.27): -1 (-0.21): -1 (-0.15): -1 (-0.09): -1 (-0.03): -1 (0.03): 0 (0.09): 0 (0.15): 0 (0.21): 0 (0.27): 0 (0.33): 0 (0.39): 0 (0.45): 0 (0.51): 0 (0.57): 0 (0.63): 0 (0.69): 0 (0.75): 0 (0.81): 0 (0.87): 0 (0.93): 0 (0.99): 0 (1.05): 1 (1.11): 1 (1.17): 1 (1.23): 1 (1.29): 1 (1.35): 1 (1.41): 1 (1.47): 1 (1.53): 1 (1.59): 1 (1.65): 1 (1.71): 1 (1.77): 1 (1.83): 1 (1.89): 1 (1.95): 1 (2.01): 2 (2.07): 2 (2.13): 2 (2.19): 2 (2.25): 2 (2.31): 2 (2.37): 2 (2.43): 2 (2.49): 2 (2.55): 2 (2.61): 2 (2.67): 2 (2.73): 2 (2.79): 2 (2.85): 2 (2.91): 2 (2.97): 2
{{#invoke:FunctionGraph|functionGraph|sin(1/x)|start=-0.5|end=0.5|samplingMode=diff}}
xy圖例 (-0.44): -0.75 (-0.34): -0.23 (-0.28): 0.39 (-0.22): 0.99 (-0.17): 0.38 (-0.15): -0.3 (-0.13): -0.97 (-0.11): -0.37 (-0.1): 0.31 (-0.09): 0.99 (-0.08): 0.33 (-0.08): -0.35 (-0.07): -0.97 (-0.06): -0.29 (-0.06): 0.4 (-0.06): 0.93 (-0.05): 0.23 (-0.05): -0.46 (-0.05): -0.89 (-0.05): -0.19 (-0.04): 0.52 (-0.04): 0.86 (-0.04): 0.14 (-0.04): -0.55 (-0.04): -0.87 (-0.04): -0.13 (-0.03): 0.67 (-0.03): 0.8 (-0.03): 0.03 (-0.03): -0.82 (-0.03): -0.67 (-0.03): 0.13 (-0.03): 1 (-0.03): 0.62 (-0.03): -0.2 (-0.02): -0.59 (-0.02): 0.19 (-0.02): 0.87 (-0.02): 0.86 (-0.02): -0.11 (-0.02): 0.71 (-0.02): 0.28 (-0.02): -0.34 (-0.02): -0.92 (-0.01): -0.7 (-0.01): 0.97 (-0.01): -0.52 (-0.01): 0.41 (-0.01): -0.6 (-0.01): -0.84 (0.01): 0.84 (0.01): 0.6 (0.01): -0.41 (0.01): 0.52 (0.01): -0.97 (0.01): 0.7 (0.02): 0.92 (0.02): 0.34 (0.02): -0.28 (0.02): -0.71 (0.02): 0.11 (0.02): -0.86 (0.02): -0.87 (0.02): -0.19 (0.02): 0.59 (0.03): 0.2 (0.03): -0.62 (0.03): -1 (0.03): -0.13 (0.03): 0.67 (0.03): 0.82 (0.03): -0.03 (0.03): -0.8 (0.03): -0.67 (0.04): 0.13 (0.04): 0.87 (0.04): 0.55 (0.04): -0.14 (0.04): -0.86 (0.04): -0.52 (0.05): 0.19 (0.05): 0.89 (0.05): 0.46 (0.05): -0.23 (0.06): -0.93 (0.06): -0.4 (0.06): 0.29 (0.07): 0.97 (0.08): 0.35 (0.08): -0.33 (0.09): -0.99 (0.1): -0.31 (0.11): 0.37 (0.13): 0.97 (0.15): 0.3 (0.17): -0.38 (0.22): -0.99 (0.28): -0.39 (0.34): 0.23 (0.44): 0.75
complex_graph
[編輯]繪製複變函數 2D 定義域着色圖(預設)或 3D 複變模態曲面圖(加上 3d=yes):
{{#invoke:FunctionGraph|complex_graph|x}}
實軸 (Re)虛軸 (Im) (-4.5+4.5i): -4.50+4.50i (-3.5+4.5i): -3.50+4.50i (-2.5+4.5i): -2.50+4.50i (-1.5+4.5i): -1.50+4.50i (-0.5+4.5i): -0.50+4.50i (0.5+4.5i): 0.50+4.50i (1.5+4.5i): 1.50+4.50i (2.5+4.5i): 2.50+4.50i (3.5+4.5i): 3.50+4.50i (4.5+4.5i): 4.50+4.50i (-4.5+3.5i): -4.50+3.50i (-3.5+3.5i): -3.50+3.50i (-2.5+3.5i): -2.50+3.50i (-1.5+3.5i): -1.50+3.50i (-0.5+3.5i): -0.50+3.50i (0.5+3.5i): 0.50+3.50i (1.5+3.5i): 1.50+3.50i (2.5+3.5i): 2.50+3.50i (3.5+3.5i): 3.50+3.50i (4.5+3.5i): 4.50+3.50i (-4.5+2.5i): -4.50+2.50i (-3.5+2.5i): -3.50+2.50i (-2.5+2.5i): -2.50+2.50i (-1.5+2.5i): -1.50+2.50i (-0.5+2.5i): -0.50+2.50i (0.5+2.5i): 0.50+2.50i (1.5+2.5i): 1.50+2.50i (2.5+2.5i): 2.50+2.50i (3.5+2.5i): 3.50+2.50i (4.5+2.5i): 4.50+2.50i (-4.5+1.5i): -4.50+1.50i (-3.5+1.5i): -3.50+1.50i (-2.5+1.5i): -2.50+1.50i (-1.5+1.5i): -1.50+1.50i (-0.5+1.5i): -0.50+1.50i (0.5+1.5i): 0.50+1.50i (1.5+1.5i): 1.50+1.50i (2.5+1.5i): 2.50+1.50i (3.5+1.5i): 3.50+1.50i (4.5+1.5i): 4.50+1.50i (-4.5+0.5i): -4.50+0.50i (-3.5+0.5i): -3.50+0.50i (-2.5+0.5i): -2.50+0.50i (-1.5+0.5i): -1.50+0.50i (-0.5+0.5i): -0.50+0.50i (0.5+0.5i): 0.50+0.50i (1.5+0.5i): 1.50+0.50i (2.5+0.5i): 2.50+0.50i (3.5+0.5i): 3.50+0.50i (4.5+0.5i): 4.50+0.50i (-4.5-0.5i): -4.50-0.50i (-3.5-0.5i): -3.50-0.50i (-2.5-0.5i): -2.50-0.50i (-1.5-0.5i): -1.50-0.50i (-0.5-0.5i): -0.50-0.50i (0.5-0.5i): 0.50-0.50i (1.5-0.5i): 1.50-0.50i (2.5-0.5i): 2.50-0.50i (3.5-0.5i): 3.50-0.50i (4.5-0.5i): 4.50-0.50i (-4.5-1.5i): -4.50-1.50i (-3.5-1.5i): -3.50-1.50i (-2.5-1.5i): -2.50-1.50i (-1.5-1.5i): -1.50-1.50i (-0.5-1.5i): -0.50-1.50i (0.5-1.5i): 0.50-1.50i (1.5-1.5i): 1.50-1.50i (2.5-1.5i): 2.50-1.50i (3.5-1.5i): 3.50-1.50i (4.5-1.5i): 4.50-1.50i (-4.5-2.5i): -4.50-2.50i (-3.5-2.5i): -3.50-2.50i (-2.5-2.5i): -2.50-2.50i (-1.5-2.5i): -1.50-2.50i (-0.5-2.5i): -0.50-2.50i (0.5-2.5i): 0.50-2.50i (1.5-2.5i): 1.50-2.50i (2.5-2.5i): 2.50-2.50i (3.5-2.5i): 3.50-2.50i (4.5-2.5i): 4.50-2.50i (-4.5-3.5i): -4.50-3.50i (-3.5-3.5i): -3.50-3.50i (-2.5-3.5i): -2.50-3.50i (-1.5-3.5i): -1.50-3.50i (-0.5-3.5i): -0.50-3.50i (0.5-3.5i): 0.50-3.50i (1.5-3.5i): 1.50-3.50i (2.5-3.5i): 2.50-3.50i (3.5-3.5i): 3.50-3.50i (4.5-3.5i): 4.50-3.50i (-4.5-4.5i): -4.50-4.50i (-3.5-4.5i): -3.50-4.50i (-2.5-4.5i): -2.50-4.50i (-1.5-4.5i): -1.50-4.50i (-0.5-4.5i): -0.50-4.50i (0.5-4.5i): 0.50-4.50i (1.5-4.5i): 1.50-4.50i (2.5-4.5i): 2.50-4.50i (3.5-4.5i): 3.50-4.50i (4.5-4.5i): 4.50-4.50i
另外請注意:因要向2個維度取樣(如取樣數設定為100則要運算100×100=10000次,更高的取樣數可能會超出WP:模板限制)因此較耗費效能,請斟酌使用。
{{#invoke:FunctionGraph|complex_graph|z^3 = 1|3d=yes|start=-1.6|end=1.6|zAxisMax=3}}
實軸 (Re)虛軸 (Im)|f(z)|圖例 (-1.1+1.02i): 1.10+2.65i (|f|=2.86) (-0.9+1.26i): 2.58+1.05i (|f|=2.78) (-0.64+1.41i): 2.57-1.06i (|f|=2.78) (-0.33+1.46i): 1.09-2.65i (|f|=2.87) (-1.24+0.08i): -2.90+0.37i (|f|=2.92) (-1.18+0.57i): -1.51+2.20i (|f|=2.66) (-1.06+0.96i): 0.71+2.37i (|f|=2.48) (-0.87+1.21i): 2.20+0.98i (|f|=2.4) (-0.62+1.36i): 2.20-0.99i (|f|=2.41) (-0.29+1.4i): 0.70-2.38i (|f|=2.48) (0.1+1.3i): -1.52-2.18i (|f|=2.66) (0.55+1.12i): -2.90-0.36i (|f|=2.92) (-1.22-0.56i): -1.66-2.31i (|f|=2.84) (-1.17-0.05i): -2.57-0.22i (|f|=2.58) (-1.11+0.45i): -1.71+1.58i (|f|=2.33) (-1.02+0.88i): 0.32+2.08i (|f|=2.1) (-0.84+1.16i): 1.79+0.89i (|f|=2) (-0.58+1.31i): 1.78-0.90i (|f|=2) (-0.25+1.33i): 0.32-2.09i (|f|=2.11) (0.17+1.18i): -1.72-1.55i (|f|=2.32) (0.63+0.98i): -2.58+0.22i (|f|=2.59) (1.09+0.77i): -1.66+2.31i (|f|=2.85) (-1.14-0.69i): -0.84-2.36i (|f|=2.51) (-1.08-0.19i): -2.15-0.68i (|f|=2.26) (-1.02+0.29i): -1.81+0.88i (|f|=2.01) (-0.97+0.79i): -0.08+1.74i (|f|=1.74) (-0.81+1.1i): 1.40+0.81i (|f|=1.62) (-0.55+1.25i): 1.39-0.82i (|f|=1.61) (-0.2+1.24i): -0.09-1.75i (|f|=1.75) (0.26+1.03i): -1.81-0.86i (|f|=2.01) (0.71+0.84i): -2.15+0.69i (|f|=2.25) (1.17+0.64i): -0.81+2.37i (|f|=2.51) (-0.79-1.3i): 2.49-0.25i (|f|=2.51) (-0.36-1.45i): 1.22+2.46i (|f|=2.74) (-0.05-1.4i): -0.72+2.71i (|f|=2.81) (0.23-1.28i): -2.11+1.91i (|f|=2.84) (0.49-1.14i): -2.77+0.66i (|f|=2.85) (0.74-0.99i): -2.78-0.67i (|f|=2.86) (1-0.84i): -2.11-1.92i (|f|=2.86) (1.24-0.66i): -0.72-2.73i (|f|=2.83) (1.43-0.41i): 1.23-2.44i (|f|=2.73) (1.52+0.04i): 2.49+0.27i (|f|=2.51) (-0.41-1.37i): 1.22+1.89i (|f|=2.25) (-0.09-1.32i): -0.52+2.27i (|f|=2.32) (0.18-1.19i): -1.74+1.58i (|f|=2.35) (0.43-1.03i): -2.29+0.54i (|f|=2.35) (0.68-0.88i): -2.29-0.54i (|f|=2.35) (0.95-0.75i): -1.74-1.59i (|f|=2.35) (1.19-0.58i): -0.51-2.27i (|f|=2.33) (1.39-0.33i): 1.23-1.88i (|f|=2.24) (-0.46-1.28i): 1.16+1.31i (|f|=1.74) (-0.14-1.24i): -0.36+1.81i (|f|=1.85) (0.11-1.08i): -1.38+1.21i (|f|=1.84) (0.34-0.89i): -1.77+0.39i (|f|=1.82) (0.6-0.74i): -1.77-0.39i (|f|=1.82) (0.88-0.63i): -1.38-1.22i (|f|=1.84) (1.14-0.49i): -0.35-1.80i (|f|=1.84) (1.34-0.25i): 1.17-1.33i (|f|=1.77) (-0.51-1.18i): 1.02+0.72i (|f|=1.25) (-0.2-1.13i): -0.23+1.31i (|f|=1.33) (0.01-0.91i): -1.04+0.76i (|f|=1.28) (0.14-0.54i): -1.12+0.12i (|f|=1.13) (0.4-0.4i): -1.13-0.13i (|f|=1.13) (0.79-0.47i): -1.04-0.77i (|f|=1.3) (1.08-0.39i): -0.23-1.32i (|f|=1.34) (1.28-0.14i): 1.02-0.70i (|f|=1.24) (-0.6-1.03i): 0.70-0.02i (|f|=0.7) (-0.28-1i): -0.19+0.78i (|f|=0.8) (1.01-0.26i): -0.18-0.78i (|f|=0.81) (1.2-0i): 0.72-0.01i (|f|=0.72)