import { Point } from "./Point.js"; class Segment { /** * @param {Point} start * @param {Point} stop */ constructor(start, stop) { /** * @type {Point} */ this.start = start === undefined ? new Point() : start; /** * @type {Point} */ this.stop = stop === undefined ? new Point() : stop; } angle() { let x = this.start.x - this.stop.x, y = this.start.y - this.stop.y; return Math.atan2(y, x); } len() { let x = this.start.x - this.stop.x, y = this.start.y - this.stop.y; return (x ** 2 + y ** 2) ** (1 / 2); } /** * @param {CanvasRenderingContext2D} ctx */ draw(ctx) { ctx.moveTo(this.start.x, this.start.y); ctx.lineTo(this.stop.x, this.stop.y); } from_json(data) { this.start = this.start.from_json(data.start); this.stop = this.stop.from_json(data.stop); return this; } } export { Segment };