es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Puede utilizar el siguiente algoritmo para lograr el resultado deseado:

    1. Calcule la diferencia entre la altura de las primeras y últimas coordenadas.
    2. Divida la diferencia por el número de puntos (n) para obtener el tamaño del paso.
    3. Calcule la altura de cada punto utilizando el tamaño del paso y la altura de la primera coordenada.
    4. Calcule la curva de onda sinusoidal aplicando la función sinusoidal a cada punto.
    5. Trace los puntos en el gráfico para obtener el resultado deseado.

    ¡Espero que esto ayude!

Comments are closed.