53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
import { MappingDatum, Point } from '../../interface';
|
|
import GeometryLabel from './base';
|
|
import { LabelCfg, LabelItem, LabelPointCfg } from './interface';
|
|
/**
|
|
* 极坐标下的图形 label
|
|
*/
|
|
export default class PolarLabel extends GeometryLabel {
|
|
/**
|
|
* @override
|
|
* 获取文本的对齐方式
|
|
* @param point
|
|
*/
|
|
protected getLabelAlign(point: LabelItem): any;
|
|
/**
|
|
* @override
|
|
* 获取 label 的位置
|
|
* @param labelCfg
|
|
* @param mappingData
|
|
* @param index
|
|
*/
|
|
protected getLabelPoint(labelCfg: LabelCfg, mappingData: MappingDatum, index: number): LabelPointCfg;
|
|
/**
|
|
* 获取圆弧的位置
|
|
*/
|
|
protected getArcPoint(mappingData: MappingDatum, index?: number): Point;
|
|
/**
|
|
* 计算坐标线点在极坐标系下角度
|
|
* @param point
|
|
*/
|
|
protected getPointAngle(point: Point): number;
|
|
/**
|
|
* 获取坐标点与圆心形成的圆的位置信息
|
|
* @param angle
|
|
* @param offset
|
|
* @param point
|
|
* @param isLabelEmit
|
|
*/
|
|
protected getCirclePoint(angle: number, offset: number, point: Point, isLabelEmit: boolean): {
|
|
r: number;
|
|
x: number;
|
|
y: number;
|
|
};
|
|
/**
|
|
* 获取 label 的旋转角度
|
|
* @param angle
|
|
* @param offset
|
|
* @param isLabelEmit
|
|
*/
|
|
protected getLabelRotate(angle: number, offset: number, isLabelEmit: boolean): number;
|
|
private getMiddlePoint;
|
|
private isToMiddle;
|
|
}
|