Aquí está el código que probé:
var myPath = new Path(); myPath.strokeColor = 'red'; myPath.strokeWidth = 5; myPath.dashArray = [20, 5]; myPath.add(new Point(1800, 120)); function onFrame(event) { if(event.count%10 == 0) { var angle = Math.random(0, 1)*Math.PI; var all_points = myPath.segments.length; var last_point = myPath.segments[all_points - 1]; myPath.add(new Point(last_point.point.x + 40*Math.cos(angle*(180 / Math.PI)), last_point.point.y + 40*Math.sin(angle*(180 / Math.PI)))); myPath.smooth({type: 'geometric', factor: 2}); } }
Estaba pensando que esto elegiría un ángulo aleatorio entre 0 y Math.PI y luego trazaría los puntos desde el último punto. Sin embargo, solo dibuja una línea a 45 grados yendo y viniendo. Hice un console.log()
para el ángulo y siempre es algo aleatorio entre 0 y Math.PI.
Quiero lograr algo similar a esto: https://codepen.io/speaud/pen/ExxzrL
Esto es lo que tengo hasta ahora . Mi idea era obtener un ángulo aleatorio y luego obtener los valores de seno y coseno para ese ángulo y agregarlos al último punto de la ruta. Esto movería el camino al azar en una dirección determinada.
Tenía la esperanza de que crearía buenos caminos con curvas que no se intersectaran, pero el camino pasa por el mismo lugar varias veces y también lo hace suave con la función smooth()
cambia un poco su curso anterior.
Math.cos
y Math.sin
obtienen el ángulo en radianes pero en su código los convierte a grados