math - tirar - linea con angulo autocad
Ecuación de línea con ángulo (5)
¿Cómo puedo encontrar la ecuación de una línea o dibujar una línea, dado un punto de inicio, longitud de línea y ángulo de línea (en relación con el eje x)?
El punto de inicio que conoces (x1, x2)
, el punto final es (x1 + l * cos(ang), y1 + l * sin(ang))
donde l
es la longitud y ang
es el ángulo.
En realidad hay dos preguntas diferentes: una en el título, otra en el cuerpo.
Empecemos por responder a la pregunta del título:
Ecuación de línea
La ecuación de una recta es
y = a*x + b
donde a
es una tangente de un ángulo entre una línea y el eje X, y b
es una elevación de la línea dibujada a través de (0, 0).
Ecuación de línea dado ángulo y un punto.
Puedes calcular fácilmente a
(ya que sabes el ángulo), pero no sabes b
. Pero también sabes x0
y y0
, así que puedes calcular fácilmente b
:
b = y0 - a*x0
Ahora, la ecuación se ve así:
y = tan(fi)*x + y0 - tan(fi)*x0 = tan(fi)*(x - x0) + y0
Dibuja un segmento dado punto, ángulo, longitud
Queremos dibujar un segmento desde el punto de inicio para que su longitud sea L y el ángulo con respecto al eje x sea fi.
Este es un problema totalmente diferente.
Debería imaginar un triángulo rectángulo cuyo ángulo agudo se posiciona en (x0, y0).
Ya sabes Hypotenusa (L) y un ángulo (fi).
Por definición,
a = L*cos(fi) (adjacent, x)
b = L*sin(fi) (opposite, y)
Todo lo que necesitas es agregar x0 y y0:
x1 = x0 + L*cos(fi)
y1 = y0 + L*sin(fi)
Llamemos al punto de inicio (x1, y1)
el otro extremo de la línea (x2, y2)
.
Luego, si se le da una longitud [L] y un ángulo desde el eje x [a]:
x2 = x1 + (L * cos(a))
y2 = y1 + (L * sin(a))
Si el ángulo es desde el eje y, intercambia la cos y el pecado.
Dibuja tu línea de (x1,y1)
a (x2, y2)
.
Puede encontrar una ambigüedad en cuanto a en qué dirección quiere que vaya la línea, debe tener cuidado al definir su ángulo.
Una ecuación de una recta es como:
m*x + n = y
m puede calcularse por ángulo; m = tan(angle)
Y si conoce un punto de inicio, puede encontrar n.
tan(angle) * startPoint_X + n = startPoint_Y
Entonces n = startPoint_Y - (tan ( angle) * startPoint_X )
Si desea dibujar un segmento de línea y conoce la longitud, el punto de inicio y el ángulo, habrá dos ecuaciones.
El primero es m*x + n = y
(lo resolvimos).
Y esto significa m*(endPoint_X) + n = endPoint_Y
El segundo es encontrar el punto final.
length^2 = (endPoint_X - startPoint_X)^2 + (endPoint_Y - startPoint_Y)^2
Solo hay dos cosas que aún no sabemos: endPoint_x & endPoint_Y Si reescribimos la ecuación:
length^2 = (endPoint_X - startPoint_X)^2 + ( m*(endPoint_X) + n - startPoint_Y)^2
Ahora lo sabemos todo excepto endPoint_X. Esta ecuación nos dará dos soluciones para endPoint_X. Entonces puedes encontrar dos ednPoint_Y diferentes.
(x_length, tan(angle)*x_length)
dibujarlo de (0, 0)
a (x_length, tan(angle)*x_length)
. El gradiente será tan(angle)
. Puede ajustar esto para un punto de inicio diferente restando todo de ese punto de inicio.