38 lines
839 B
TypeScript
38 lines
839 B
TypeScript
import type { Polygon } from "#/engine/Polygon.ts";
|
|
import type { Vector } from "#/engine/Vector.ts";
|
|
|
|
export function drawPoint(
|
|
ctx: CanvasRenderingContext2D,
|
|
position: Vector,
|
|
radius: number = 1,
|
|
color: string = "#fff",
|
|
): void {
|
|
ctx.beginPath();
|
|
ctx.arc(position.x, position.y, radius, 0, 2 * Math.PI);
|
|
ctx.fillStyle = color;
|
|
ctx.fill();
|
|
}
|
|
|
|
export function drawPolygon(
|
|
ctx: CanvasRenderingContext2D,
|
|
polygon: Polygon,
|
|
color: string = "#fff",
|
|
): void {
|
|
drawPoint(ctx, polygon.position);
|
|
ctx.beginPath();
|
|
ctx.moveTo(
|
|
polygon.points[0].x + polygon.position.x,
|
|
polygon.points[0].y + polygon.position.y,
|
|
);
|
|
|
|
for (let i = polygon.points.length - 1; i >= 0; i--) {
|
|
ctx.lineTo(
|
|
polygon.points[i].x + polygon.position.x,
|
|
polygon.points[i].y + polygon.position.y,
|
|
);
|
|
}
|
|
|
|
ctx.strokeStyle = color;
|
|
ctx.stroke();
|
|
}
|