함수 그래프 요소

함수 그래프 요소는 구성 가능한 축, 채우기 및 스타일링을 사용하여 수학 함수 곡선을 렌더링합니다. 표현식은 샌드박스 환경에서 평가됩니다.

함수 그래프 요소는 기본 요소뷰 요소에서 공통 필드를 공유합니다.

함수 그래프 속성

소품유형필수예시값 범위설명
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는 주어진 samples 수로 지정된 range를 반복합니다.
  • 곡선과 x축 사이의 영역을 채우려면 fillOpacity를 0보다 크게 설정하세요.
  • 비대칭선이 있는 함수(예: 1/x)의 극단적인 y값을 클립하려면 threshold를 사용하세요.