import { MathsKit, MathsKitOptions, MarkLine } from '../mathsKit'; import { MathsKitManager } from '../manager'; import { Point2d } from '../utils/Point2d'; import Matrix2D from '../utils/matrix'; import { MathsKitElement, MathsKitType } from '../types'; export type Triangle30Element = HTMLDivElement; export type Triangle45Element = HTMLDivElement; export declare class Triangle30Tool extends MathsKit { protected markLines: MarkLine[]; private deleteBtn; private rotateBtn; private angleInput; private lineLength; private stretchBtn; private triangleView; private elementContent; private bottomMark; private leftMark; private hypotenuseMark; bindElement(element: MathsKitElement, type: MathsKitType): void; private bindElementContent; bindTriangleView(element: MathsKitElement): HTMLDivElement; constructor(options: MathsKitOptions, manager: MathsKitManager); init(): void; onDragStart(): void; onDragDoing(): void; onDragEnd(matrix: Matrix2D): void; onRotateStart(originAngle: number): void; onRotateDoing(angle: number): void; onRotateEnd(matrix: Matrix2D): void; onStretchStart(): void; private thottled; onStretchDoing: (_width: number) => void; onStretchEnd(width: number): void; /** * 获取旋转中心点, 坐标必须相对于容器左上角, 旋转中心点是左上角 * @returns */ getRotateCenterPoint: () => Point2d; getMarkLines(): MarkLine[]; private bindEvent; private unbindEvent; destroy(): void; private onDeleteBtnClickHandler; private onBtnMouseEnterHandler; private onBtnMouseLeaveHandler; createElement(): HTMLDivElement; private createMark; private computeHeight; private computeHypotenuse; render(): void; private renderMark; private renderMarkAtPosition; setActive(isActive: boolean): void; private createDeleteBtn; private createRotateBtn; private createStretchBtn; private createAngleInput; private onAngleInputFocusHandler; private onAngleInputBlurHandler; private onAngleInputKeyDownHandler; private updateAngleDisplay; private getCurrentAngle; private applyAngleFromInput; private showAngleInput; private hideAngleInput; showLineLength(number: number): void; hideLineLength(): void; private createLineLength; } export declare class Triangle45Tool extends MathsKit { protected markLines: MarkLine[]; private deleteBtn; private rotateBtn; private angleInput; private lineLength; private stretchBtn; private triangleView; private elementContent; private bottomMark; private leftMark; private hypotenuseMark; bindElement(element: MathsKitElement, type: MathsKitType): void; private bindElementContent; bindTriangleView(element: MathsKitElement): HTMLDivElement; constructor(options: MathsKitOptions, manager: MathsKitManager); init(): void; onDragStart(): void; onDragDoing(): void; onDragEnd(matrix: Matrix2D): void; onRotateStart(originAngle: number): void; onRotateDoing(angle: number): void; onRotateEnd(matrix: Matrix2D): void; onStretchStart(): void; private thottled; onStretchDoing: (_width: number) => void; onStretchEnd(width: number): void; /** * 获取旋转中心点, 坐标必须相对于容器左上角, 旋转中心点是左上角 * @returns */ getRotateCenterPoint: () => Point2d; getMarkLines(): MarkLine[]; private bindEvent; private unbindEvent; destroy(): void; private onDeleteBtnClickHandler; private onBtnMouseEnterHandler; private onBtnMouseLeaveHandler; createElement(): HTMLDivElement; private createMark; private computeHeight; private computeHypotenuse; render(): void; private renderMark; private renderMarkAtPosition; setActive(isActive: boolean): void; private createDeleteBtn; private createRotateBtn; private createStretchBtn; private createAngleInput; private onAngleInputFocusHandler; private onAngleInputBlurHandler; private onAngleInputKeyDownHandler; private updateAngleDisplay; private getCurrentAngle; private applyAngleFromInput; private showAngleInput; private hideAngleInput; showLineLength(number: number): void; hideLineLength(): void; private createLineLength; }