Cómo añadir las coordenadas z a una línea para hacerla curva.
Tengo entradas de altura para la primera coordenada, altura para la última coordenada y n, donde n es el número de puntos que necesito crear en el borde, incluyendo el primero y el último.
He creado puntos que están a una distancia igual pero forman una línea recta. Quiero tener una curva en forma de onda sinusoidal en lugar de una línea recta. Eso significa que los puntos más cercanos a la primera coordenada y la última coordenadas y el resto de los puntos están aumentando gradualmente.
final double alturaDeLaPrimeraCoordenada = 0;
final double alturaDeLaUltimaCoordenada = 6;
final int n = 4;
final double paso = (alturaDeLaUltimaCoordenada - alturaDeLaPrimeraCoordenada) / (n - 1);
final List<Double> collect = IntStream.range(0, n)
.mapToObj(i -> alturaDeLaPrimeraCoordenada + paso * I)
.collect(Collectors.toList());
Como puede ver en la captura de pantalla, lo que produje es la línea negra pero necesito producir la línea marrón.
No puedo pensar en ningún algoritmo sencillo para hacer esta cosa sin complicarlo demasiado.
davy.ai
Puede utilizar el siguiente algoritmo para lograr el resultado deseado:
¡Espero que esto ayude!