UNPKG

@rgsoft/turtle

Version:

Turtle graphics and L-Systems library

69 lines (64 loc) 1.57 kB
declare const alphabetSymbols: readonly ["F", "G", "H", "L", "M", "D", "U", "+", "-", "[", "]"]; type AlphabetSymbol = typeof alphabetSymbols[number]; declare class Rule { private _base; private _next; constructor(rule: string); get base(): AlphabetSymbol; get next(): AlphabetSymbol[]; get nextString(): string; toString(): string; } declare class LSystem { private _axiom; private _rules; private _sentence; private _generation; constructor(axiom: string, rules: (string | Rule)[]); private init; /** * * @param { number } n */ generate(n?: number): void; get sentence(): string; get generation(): number; get rules(): Rule[]; set axiom(val: string); get axiom(): string; } interface ScaleConfig { ratio: number; scaleStrokeSize?: boolean; scaleStrokeWeight?: boolean; scaleAngle?: boolean; } interface TurtleConfig { context: CanvasRenderingContext2D; strokeSize: number; strokeWeight: number; angle: number; scale: ScaleConfig; } declare class Turtle { config: TurtleConfig; /** * @type { number } */ private currentScale; private readonly alphabetMap; constructor(config: TurtleConfig); /** * * @param { string } sentence */ render(sentence: string): void; /** * * @param { number } x * @param { number } y * @param { number } angle */ init(x: number, y: number, angle: number): void; } export { type AlphabetSymbol, LSystem, Rule, Turtle };