Documentation / @finchart/core / LinearScale
Class: LinearScale
Defined in: packages/core/src/scale/linear-scale.ts:4
데이터 도메인 ↔ 화면 좌표의 단방향 매핑. pan/zoom에서 도메인이 계속 바뀌므로 가변(mutable)이다. 잘못된 입력은 Result가 아니라 throw로 알린다.
Implements
Constructors
Constructor
new LinearScale(
domainMin?,domainMax?,rangeMin?,rangeMax?):LinearScale
Defined in: packages/core/src/scale/linear-scale.ts:8
Parameters
domainMin?
number
domainMax?
number
rangeMin?
number
rangeMax?
number
Returns
LinearScale
Methods
getDomain()
getDomain(): [
number,number]
Defined in: packages/core/src/scale/linear-scale.ts:39
데이터 도메인 [min, max]
Returns
[number, number]
Implementation of
getRange()
getRange(): [
number,number]
Defined in: packages/core/src/scale/linear-scale.ts:43
화면 범위 [start, end] (px).
start > end인 역방향도 허용한다. 화면 y는 아래로 증가하므로 y축은 [bottom, top]으로 설정해 큰 값이 위에 오게 만든다 — 이 반전을 스케일이 들고 있어야 차트와 축이 같은 좌표를 본다.
Returns
[number, number]
Implementation of
invert()
invert(
screenValue):number
Defined in: packages/core/src/scale/linear-scale.ts:55
화면 좌표 → 데이터 값
Parameters
screenValue
number
Returns
number
Implementation of
scale()
scale(
value):number
Defined in: packages/core/src/scale/linear-scale.ts:47
데이터 값 → 화면 좌표
Parameters
value
number
Returns
number
Implementation of
setDomain()
setDomain(
min,max):void
Defined in: packages/core/src/scale/linear-scale.ts:31
길목이다 — F1. y 도메인도 x 도메인도 예외 없이 여기를 지나고 (pane.ts:589·1006·1021 · x-viewport.ts 9곳), 축은 getDomain()으로 읽기만 한다(axis.ts:52). 따라서 스케일이 비유한 도메인을 품지 않으면 axis.ts의 눈금 루프가 무한이 될 수 없다.
예전에는 min >= max만 봤다. -Infinity < Infinity라 통과했고, 그 도메인이 축에 닿으면 count = Infinity가 되어 탭이 OOM으로 죽었다 (36차 B1).
Parameters
min
number
max
number
Returns
void
Implementation of
setRange()
setRange(
start,end):void
Defined in: packages/core/src/scale/linear-scale.ts:35
Parameters
start
number
end
number
Returns
void