vertical usar una lineas linea dibujos dibujar coordenadas con como agregar java trigonometry

usar - dibujos en java netbeans



Dibuja una línea en un ángulo específico en Java (1)

¿Es esto lo que estás buscando?

startX = x; startY = y; endX = x + 40 * Math.sin(angle); endY = y + 40 * Math.cos(angle);

Y dibuje una línea desde (startX, startY) hasta (endX, endY) en cualquier API que esté usando.

También tenga en cuenta que el angle está en radianes. Si lo tienes en grados, primero debes convertirlo:

angle = angle * Math.PI / 180;

Digamos que tengo un (x, y) que siempre es el mismo para el punto de inicio de una línea y un (x, y) que cambia para el punto final de esa misma línea. La línea también es siempre 40px de largo. Al inicio del programa, la línea se origina en una orientación vertical (llamémosla 0 grados). Basado en una entrada del usuario, necesito que la línea se vuelva a dibujar un número específico de grados desde su origen cambiando solo el final (x, y).

ALGUNOS MÁS ALIMENTOS PARA EL PENSAMIENTO SI LO NECESITA:

Estoy en una rutina tratando de calcular esto y hacerlo funcionar en Java. Puedo hacer que las matemáticas funcionen para calcular el punto en función de la longitud del arco de un segmento circular, pero no sé cómo hacer que Java lo haga.

Creo que funcionaría más fácilmente en función de los ángulos de un triángulo ya que siempre sabré la longitud de los dos lados de un triángulo (un lado formado por la línea larga de 40px y el otro lado formado por el punto de inicio de esa línea y el borde de la línea). JPanel) y el ángulo que forman esas dos líneas. Sin embargo, mi cerebro está molesto por tratar de averiguarlo. Cualquier ayuda sería muy apreciada.

ACTUALIZAR:

@casablanca me puso en el camino correcto. Repasé mis funciones trigonométricas y aquí es cómo las hice funcionar.

En primer lugar, no me di cuenta de que había 90 grados hacia arriba, pero una vez que me di cuenta de que hice que mi solución reflejara ese hecho. Estaba dibujando mi línea comenzando en el centro inferior del marco saliendo. Dado que el lado opposite del triángulo está en el lado derecho de la pantalla cuando el ángulo dado por mi usuario es menor que 90 grados y está en el lado izquierdo de la pantalla cuando el ángulo dado por mi usuario es mayor que 90 grados que tenía para ajustar la fórmula para tener en cuenta este hecho, tengo cuatro métodos, uno para la coordenada x en el lado izquierdo de la pantalla (cuando el ángulo dado por el usuario es mayor que 90 grados), uno para la coordenada y en el lado izquierdo de la pantalla (cuando el ángulo dado por el usuario es mayor que 90 grados) y lo mismo para el lado derecho de la pantalla cuando el ángulo dado por el usuario es menor que 90 grados. La int length en todos los métodos es la longitud de la hipotenusa. Gracias de nuevo por tu ayuda @casablanca!

public double leftSideX(double angle, int length){ double x = frameWidth/2 - (length * Math.cos(Math.toRadians(90-(Math.toDegrees(angle)-90)))); return x; } public double leftSideY(double angle, int length){ double y = frameHeight - (length * Math.sin(Math.toRadians(90-(Math.toDegrees(angle)-90)))); return y; } public double rightSideX(double angle, int length){ double x = frameWidth/2 + (length * Math.cos(angle)); return x; } public double rightSideY(double angle, int length){ double y = frameHeight - (length * Math.sin(angle)); return y; }