Documentation / @finchart/core / XMapping
Interface: XMapping
Defined in: packages/core/src/scale/x-mapping.ts:16
데이터의 x가 화면 어디에 놓이는가. 시리즈가 x에 대해 아는 전부다.
시리즈가 Scale을 직접 쓰면 "x는 연속이다"가 그리는 코드 곳곳에 박혀, 금융 차트가 원하는 봉 번호 좌표계(주말·휴장이 공백으로 벌어지지 않는다)를 얹을 자리가 없다.
그래서 한 겹을 둔다. Scale은 그 아래에서 도메인↔픽셀만 하고, "도메인이 시간인가 봉 번호인가"는 이 계약이 정한다.
연속이 기본이다 — 불규칙한 수치 x를 봉 번호로 바꾸면 간격의 의미가 사라지므로, 봉 번호는 그것을 원하는 차트가 고르는 것이어야 한다.
Properties
barSpacingDefaults?
optionalbarSpacingDefaults?:object
Defined in: packages/core/src/scale/x-mapping.ts:40
배선이 안 정했을 때 쓸 봉 간격 한계 (도메인 한 단위당 픽셀).
도메인 한 단위가 무엇인지 아는 것은 매핑뿐이라 기본값도 매핑이 선언한다 — 연속 매핑의 한 단위는 ms일 수도 일수일 수도 있어 코어가 짐작하면 재앙이다. PlotConfig의 min/maxBarSpacing이 언제나 이긴다.
max?
optionalmax?:number
min?
optionalmin?:number
domainToPixel?
optionaldomainToPixel?: (value) =>number
Defined in: packages/core/src/scale/x-mapping.ts:83
스케일 도메인 값 → 화면 px. toDomain/fromDomain이 만든 자리(place)를 픽셀로 놓는 O(1) 산술이다 — toPixel의 뒷절반.
솎기가 이미 계산한 자리로 그릴 때 쓴다 — 점마다 병합 x 목록을 뒤지는 앞절반(toDomain)이 통째로 빠진다. 없으면 그리기가 toPixel로 물러난다.
Parameters
value
number
Returns
number
Methods
fromDomain()
fromDomain(
value):number
Defined in: packages/core/src/scale/x-mapping.ts:31
스케일 도메인 값 → 데이터의 x. toDomain의 역이다.
Parameters
value
number
Returns
number
fromPixel()
fromPixel(
px):number
Defined in: packages/core/src/scale/x-mapping.ts:20
화면 px → 데이터의 x
Parameters
px
number
Returns
number
rebuild()?
optionalrebuild(sources):void
Defined in: packages/core/src/scale/x-mapping.ts:49
데이터가 바뀌었다 — 인덱스를 다시 세울 기회다. 없으면 셀 것이 없다는 뜻이고(연속 매핑), Plot은 그때 x를 모으는 일 자체를 건너뛴다.
sources는 등록마다의 x 목록이다(각각 오름차순). 합쳐서 인덱스를 만드는 것은 매핑의 일이다 — Plot은 x를 모으기만 한다.
Parameters
sources
readonly readonly number[][]
Returns
void
scanToDomain()?
optionalscanToDomain(): (x) =>number
Defined in: packages/core/src/scale/x-mapping.ts:63
오름차순 훑기 한 판(pass)을 연다 — toDomain과 같은 답을 내는 함수를 돌려주되, 그 함수가 자기만의 커서를 소유한다.
커서를 매핑 안에 하나 두고 모든 호출자가 공유하면, 훑는 소비자와 점 단위 소비자(그리기·히트 판정)가 서로의 커서를 짓밟는다. toDomain은 순수(이진 탐색, 상태 0)로 두고, 훑기 가속이 필요한 쪽만 이 문으로 판을 열어 그 판과 함께 나고 죽는 커서를 쓴다.
없으면 도메인이 x와 같다는 뜻이다(연속 매핑) — rebuild와 같은 규칙, 존재 자체가 선언이다.
Returns
(x) => number
scanToPixel()?
optionalscanToPixel(): (x) =>number
Defined in: packages/core/src/scale/x-mapping.ts:73
scanToDomain의 화면 형태 — 오름차순 훑기 한 판의 toPixel이다. 그리기가 이 판의 두 번째 소비자다: 시리즈는 점을 x 오름차순으로 훑으므로 점마다 이진 탐색 대신 판 소유 커서로 걷는다.
규칙은 scanToDomain과 같다 — 답은 toPixel과 항상 같고(빗나가면 이진 탐색으로 떨어질 뿐), 없으면 toPixel이 이미 O(1)이라는 뜻이다.
Returns
(x) => number
toDomain()
toDomain(
x):number
Defined in: packages/core/src/scale/x-mapping.ts:29
데이터의 x → 스케일 도메인 값. 연속이면 항등, 봉 번호면 인덱스다.
pan/zoom은 스케일 도메인에서 돌고(봉 번호에서는 그래야 봉 단위로 고르게 움직인다), 데이터 쪽 세상(자르기·이벤트)은 x로 말한다. 인덱스는 x의 단조 함수라 구간이 구간으로 옮겨진다.
Parameters
x
number
Returns
number
toPixel()
toPixel(
x):number
Defined in: packages/core/src/scale/x-mapping.ts:18
데이터의 x → 화면 px
Parameters
x
number
Returns
number