関数グラフ要素

関数グラフ要素は、構成可能な軸、塗りつぶし、スタイリングを持つ数学的関数曲線を描画します。式はサンドボックス環境で評価されます。

関数グラフ要素は、基本要素およびビュー要素から共通のフィールドを共有します。

関数グラフプロパティ

プロパティタイプ必須値の範囲説明
typestringtrue-Function Graph要素のタイプ。関数グラフ要素の場合、これは常に「関数グラフ」です。
expressionstringtrueMath.sin(x)-プロットする数学的式。変数としてxを持つJavaScript Math構文を使用します。
rangearrayfalse[-10, 10]-x軸の範囲を二要素の配列[min, max]として指定します。
samplesnumberfalse-> 0曲線をプロットするために使用されるサンプルポイントの数。値が高いほど滑らかな曲線になります。
thicknessnumberfalse-> 0関数曲線の線の太さ(ピクセル単位)。
colorstringfalse--関数曲線の色(16進数形式)。
backgroundColorstringfalse--グラフ領域の背景色(16進数形式)。
backgroundOpacitynumberfalse-0 - 1背景の不透明度。
thresholdnumberfalse--クリッピングのための最大y値の閾値。この値を超えるポイントは描画されません。
flipYbooleanfalse--Y軸の方向を反転させるかどうか。
fillColorstringfalse--曲線の下の塗りつぶし色(16進数形式)。
fillOpacitynumberfalse-0 - 1曲線の下の領域の塗りつぶしの不透明度。塗りつぶしを無効にするには0に設定します。

軸プロパティ

プロパティタイプ必須値の範囲説明
showAxisbooleanfalse--座標軸を表示するかどうか。
axisColorstringfalse--軸線の色(16進数形式)。
axisOpacitynumberfalse-0 - 1軸線の不透明度。
axisTickCountnumberfalse--各軸の目盛りの数。
axisThicknessnumberfalse--軸線の太さ(ピクセル単位)。
showAxisArrowbooleanfalse--軸の端に矢印を表示するかどうか。
axisArrowSizenumberfalse--軸の矢印のサイズ(ピクセル単位)。

サイン波

functionGraphElement.json
 
{
  "id": "graph-001",
  "type": "Function Graph",
  "start": 0,
  "duration": 5,
  "trackIndex": 0,
  "x": 200,
  "y": 200,
  "width": 400,
  "height": 200,
  "anchorX": 200,
  "anchorY": 100,
  "rotation": 0,
  "scaleX": 1,
  "scaleY": 1,
  "alpha": 1,
  "expression": "Math.sin(x)",
  "range": [-10, 10],
  "samples": 200,
  "thickness": 2,
  "color": "#C55F73",
  "backgroundColor": "#000000",
  "backgroundOpacity": 1,
  "showAxis": true,
  "axisColor": "#ffffff",
  "axisTickCount": 10
}

塗りつぶされた二次関数

functionGraphFilled.json
 
{
  "id": "graph-002",
  "type": "Function Graph",
  "start": 0,
  "duration": 8,
  "trackIndex": 0,
  "x": 300,
  "y": 250,
  "width": 500,
  "height": 300,
  "anchorX": 250,
  "anchorY": 150,
  "rotation": 0,
  "scaleX": 1,
  "scaleY": 1,
  "alpha": 1,
  "expression": "x * x - 4",
  "range": [-5, 5],
  "samples": 300,
  "thickness": 3,
  "color": "#4A90E2",
  "fillColor": "#4A90E2",
  "fillOpacity": 0.3,
  "backgroundColor": "#1a1a2e",
  "backgroundOpacity": 0.9,
  "showAxis": true,
  "axisColor": "#cccccc",
  "axisThickness": 2,
  "showAxisArrow": true,
  "axisArrowSize": 10
}

注意事項

  • expressionは、JavaScriptのMathオブジェクトにアクセスできるサンドボックス環境で評価されます。Math.sin(x)Math.pow(x, 2)Math.exp(x)などを使用します。
  • 変数xは、指定されたrange内で与えられた数のsamplesを使って反復します。
  • 曲線とx軸の間の領域を塗りつぶすには、fillOpacityを0より大きく設定します。
  • 非定常点を持つ関数(例:1/x)のために、極端なy値をクリップするにはthresholdを使用します。