UNPKG

@hhenrichsen/motion-canvas-graphing

Version:

Some graphing components for Motion Canvas.

104 lines (99 loc) 4.11 kB
import { LayoutProps, Layout, CanvasStyleSignal, PossibleCanvasStyle, LineProps, Line } from '@motion-canvas/2d'; import { SignalValue, PossibleVector2, PossibleColor, Vector2Signal, SimpleSignal, BBox, Vector2 } from '@motion-canvas/core'; interface PlotProps extends LayoutProps { minX?: SignalValue<number>; minY?: SignalValue<number>; min?: SignalValue<PossibleVector2>; maxX?: SignalValue<number>; maxY?: SignalValue<number>; max?: SignalValue<PossibleVector2>; ticksX?: SignalValue<number>; ticksY?: SignalValue<number>; ticks?: SignalValue<PossibleVector2>; labelSizeX?: SignalValue<number>; labelSizeY?: SignalValue<number>; labelSize?: SignalValue<PossibleVector2>; labelPaddingX?: SignalValue<number>; labelPaddingY?: SignalValue<number>; labelPadding?: SignalValue<PossibleVector2>; tickPaddingX?: SignalValue<number>; tickPaddingY?: SignalValue<number>; tickPadding?: SignalValue<PossibleVector2>; tickLabelSizeX?: SignalValue<number>; tickLabelSizeY?: SignalValue<number>; tickLabelSize?: SignalValue<PossibleVector2>; tickOverflowX?: SignalValue<number>; tickOverflowY?: SignalValue<number>; tickOverflow?: SignalValue<PossibleVector2>; gridStrokeWidth?: SignalValue<number>; axisStrokeWidth?: SignalValue<number>; labelX?: SignalValue<string>; axisColorX?: SignalValue<PossibleColor>; axisTextColorX?: SignalValue<PossibleColor>; labelY?: SignalValue<string>; axisColorY?: SignalValue<PossibleColor>; axisTextColorY?: SignalValue<PossibleColor>; labelFormatterX?: (x: number) => string; labelFormatterY?: (y: number) => string; } declare class Plot extends Layout { readonly min: Vector2Signal<this>; readonly max: Vector2Signal<this>; readonly ticks: Vector2Signal<this>; readonly labelSize: Vector2Signal<this>; readonly labelPadding: Vector2Signal<this>; readonly tickLabelSize: Vector2Signal<this>; readonly tickOverflow: Vector2Signal<this>; readonly tickPadding: Vector2Signal<this>; readonly gridStrokeWidth: Vector2Signal<this>; readonly axisStrokeWidth: Vector2Signal<this>; readonly axisColorX: CanvasStyleSignal<this>; readonly axisTextColorX: CanvasStyleSignal<this>; readonly labelX: SimpleSignal<string, this>; readonly axisColorY: CanvasStyleSignal<this>; readonly axisTextColorY: CanvasStyleSignal<this>; readonly labelY: SimpleSignal<string, this>; readonly labelFormatterX: (x: number) => string; readonly labelFormatterY: (y: number) => string; private edgePadding; constructor(props?: PlotProps); cacheBBox(): BBox; protected draw(context: CanvasRenderingContext2D): void; getPath(): Path2D; getPointFromPlotSpace(point: PossibleVector2): Vector2; private mapToX; private mapToY; private toRelativeGridSize; makeGraphData(resolution: number, f: (x: number) => number): [number, number][]; } interface ScatterPlotProps extends LayoutProps { pointRadius?: number; pointColor?: PossibleCanvasStyle; data?: SignalValue<PossibleVector2[]>; start?: SignalValue<number>; end?: SignalValue<number>; } declare class ScatterPlot extends Layout { readonly pointRadius: SimpleSignal<number, this>; readonly pointColor: CanvasStyleSignal<this>; readonly data: SimpleSignal<[number, number][], this>; readonly start: SimpleSignal<number, this>; readonly end: SimpleSignal<number, this>; private firstIndex; private firstPointProgress; private lastIndex; private pointProgress; constructor(props?: ScatterPlotProps); protected draw(context: CanvasRenderingContext2D): void; } interface LinePlotProps extends LineProps { data?: [number, number][]; points?: never; } declare class LinePlot extends Line { readonly data: SimpleSignal<[number, number][], this>; constructor(props?: LinePlotProps); parsedPoints(): Vector2[]; protected childrenBBox(): BBox; } export { LinePlot, type LinePlotProps, Plot, type PlotProps, ScatterPlot, type ScatterPlotProps };