export interface MiPoint { x : number ; y : number ; time : number ; } /** 坐标组 */ export interface MiPointGroup { color : string ; thickness : number ; opacity : number ; points : Point [ ] ; } /** 坐标属性 */ export interface MiPointConfig { x : number ; y : number ; } export class Point implements MiPoint { x : number ; y : number ; time : number ; param x param y param time constructor ( x , y , time ? ) { this . x = x ; this . y = y ; this . time = time || Date . now ( ) ; } param start distance ( start ) { return Math . sqrt ( Math . pow ( this . x - start . x , 2 ) + Math . pow ( this . y - start . y , 2 ) ) ; } param point equals ( point ) { return this . x === point . x && this . y === point . y ; } param start velocity ( start ) { return this . time !== start . time ? this . distance ( start ) / ( this . time - start . time ) : 0 ; } }