import { PointType, CoordCfg } from './interface'; import { LngLat } from './geo/geometry/lng-lat'; export interface CoordConstructor { new (cfg: any): Coord; } export default class Coord { /** * 获取默认的配置属性 * @protected * @return {Object} 默认属性 */ [dim: string]: any; center: any; start: PointType; end: PointType; width: number; height: number; matrix: number[]; isTransposed: boolean; constructor(cfg?: CoordCfg); init(): void; _swapDim(dim: string): void; getCenter(): PointType | LngLat; getWidth(): number; getHeight(): number; convertDim(percent: number, dim: string): number; invertDim(value: number, dim: string): number; /** * 将归一化的坐标点数据转换为画布坐标 * @override * @param {Object} point 归一化的坐标点 * @return {Object} 返回画布坐标 */ convertPoint(point: any): any; /** * 将画布坐标转换为归一化的坐标点数据 * @override * @param {Object} PointType 画布坐标点数据 * @return {Object} 归一化后的数据点 */ invertPoint(point: any): any; /** * 将坐标点进行矩阵变换 * @param {Number} x 对应 x 轴画布坐标 * @param {Number} y 对应 y 轴画布坐标 * @param {Number} tag 默认为 0,可取值 0, 1 * @return {Array} 返回变换后的三阶向量 [x, y, z] */ applyMatrix(x: number, y: number, tag?: number): number[]; /** * 将坐标点进行矩阵逆变换 * @param {Number} x 对应 x 轴画布坐标 * @param {Number} y 对应 y 轴画布坐标 * @param {Number} tag 默认为 0,可取值 0, 1 * @return {Array} 返回矩阵逆变换后的三阶向量 [x, y, z] */ invertMatrix(x: number, y: number, tag?: number): number[]; /** * 将归一化的坐标点数据转换为画布坐标,并根据坐标系当前矩阵进行变换 * @param {Object} point 归一化的坐标点 * @return {Object} 返回进行矩阵变换后的画布坐标 */ convert(point: PointType): PointType; /** * 将进行过矩阵变换画布坐标转换为归一化坐标 * @param {Object} point 画布坐标 * @return {Object} 返回归一化的坐标点 */ invert(point: PointType): PointType; /** * 坐标系旋转变换 * @param {Number} radian 旋转弧度 * @return {Object} 返回坐标系对象 */ rotate(radian: number): this; /** * 坐标系反射变换 * @param {String} dim 反射维度 * @return {Object} 返回坐标系对象 */ reflect(dim: string): this; /** * 坐标系比例变换 * @param {Number} s1 x 方向缩放比例 * @param {Number} s2 y 方向缩放比例 * @return {Object} 返回坐标系对象 */ scale(s1: number, s2: number): this; /** * 坐标系平移变换 * @param {Number} x x 方向平移像素 * @param {Number} y y 方向平移像素 * @return {Object} 返回坐标系对象 */ translate(x: number, y: number): this; /** * 将坐标系 x y 两个轴进行转置 * @return {Object} 返回坐标系对象 */ transpose(): this; }