У меня линия между 2 точками.Линия может быть под любым углом.
Ex
const c = document.getElementById("myCanvas");
const ctx = c.getContext("2d");
const from = {x:50, y:50};
const to = {x: 100, y: 125};
ctx.beginPath();
ctx.moveTo(from.x, from.y);
ctx.lineTo(to.x, to.y);
ctx.stroke()
<canvas id="myCanvas"></canvas>
Как я могу превратить его в зигзагообразную линию?
Редактировать Итак, я играю в маленьком баскетбольном тренировочном приложении.Где вы должны быть в состоянии нарисовать линии, чтобы показать, как следует выполнять упражнение.Вы рисуете прямую линию, и затем вы можете с помощью кнопок меню изменить эту линию, чтобы она была пунктирной и / или зигзагообразной.
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
}
class Line {
constructor(fromPoint = null, toPoint = null) {
this.from = fromPoint;
this.to = toPoint;
this.dashed = false;
this.zigZagged = false;
}
setFrom(point) { this.from = point;}
setTo(point) { this.to = toPoint;}
getFrom() { return this.from; }
getTo() { return this.to}
draw(ctx, color = '#000', lineWidth = 2.0) {
ctx.beginPath();
if (this.dashed) {
ctx.setLineDash([5, 10]);
} else {
ctx.setLineDash([]);
}
//Starting point of the line
ctx.moveTo(this.from.x, this.from.y);
if (this.zigZagged) {
// Need help with this function
this.drawZigZagged();
} else {
ctx.lineTo(this.to.x, this.to.y);
}
ctx.lineWidth = lineWidth;
ctx.strokeStyle = color;
ctx.stroke();
}
drawZigZagged(ctx) {
// PLEASE help creating this function
// .. help
// .. use this.from and this.to to create a zig zag line
// .. maybe something like 20px for each individual zig zag line
// .. I guess the function have to calculate the angle the
// .. current line have (this.from - this.to)
// .. to be able to create a zig zag line instead of a straight line
}
setDashed(enable) {
this.dashed = enable;
}
setZigZagged(enable){
this.zigZagged = enable
}
}
Поэтому, пожалуйста, помогите мне создать функцию drawZigZagged (ctx) {...}