Saltar al contenido

¿Cómo calcular las coordenadas de la línea entre dos puntos en python?

Nuestros investigadores estrellas han agotado sus depósitos de café, por su búsqueda a tiempo completo por la respuesta, hasta que Amelia encontró el arreglo en Bitbucket y en este momento la compartimos aquí.

Solución:

“Todos ellos”? Hay un número infinito.

Puede calcular la pendiente y la intersección de la línea entre esos dos puntos. Sabiéndolos, puede calcular el valor de y para cada valor de x que desee utilizando la ecuación de la línea.

Esto es álgebra de secundaria. ¿Cuál es el problema?

Dados dos puntos (x1, y1) y (x2, y2) la ecuación de la línea entre ellos es:

y = m*x + b

donde

m = slope = (y1-y2)/(x1-x2)

y

b = y-intercept = (x1*y2 - x2*y1)/(x1-x2)

Si te refieres a “dibujar el círculo que pasa entre los dos puntos y encontrar todos los puntos dentro”, calcularía el punto central como el punto medio de esa línea y el radio es igual a la mitad de la longitud de esa línea. Calcula si un punto está dentro o fuera del círculo determinando la distancia desde el centro y comparándola con el radio.

Hay un número infinito de puntos tanto dentro como fuera del círculo. ¿Qué estás intentando hacer aquí realmente?

Parece que desea generar una lista de entero puntos para el segmento de línea entre puntos dados. Este problema se resuelve en gráficos por computadora, por ejemplo, utilizando el algoritmo de Bresenham o el algoritmo DDA.

def intermediates(p1, p2, nb_points=8):
    """"Return a list of nb_points equally spaced points
    between p1 and p2"""
    # If we have 8 intermediate points, we have 8+1=9 spaces
    # between p1 and p2
    x_spacing = (p2[0] - p1[0]) / (nb_points + 1)
    y_spacing = (p2[1] - p1[1]) / (nb_points + 1)

    return [[p1[0] + i * x_spacing, p1[1] +  i * y_spacing] 
            for i in range(1, nb_points+1)]

print(intermediates([1, 2], [10, 6.5], nb_points=8))

# [[2.0, 2.5], [3.0, 3.0], [4.0, 3.5], [5.0, 4.0], 
#  [6.0, 4.5], [7.0, 5.0], [8.0, 5.5], [9.0, 6.0]]

Si posees alguna cuestión y forma de reaccionar nuestro tutorial te insinuamos escribir una crítica y con placer lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *