SoloCodigo
Informática en general => Dudas informáticas => Mensaje iniciado por: amoruno en Jueves 25 de Septiembre de 2003, 08:22
-
Hola a tod@s, necesito un algoritmo que, a partir de una recta dada, me cálcule los puntos de la recta paralela.
Es decir, yo tengo los puntos de una recta (x1,y1,x2,y2) y necesito saber los puntos de la recta paralela a la recta dada.
He estado investigando sobre el algoritmo de Bresenham, pero no siy capaz de averiguar como se hace.
Muchas Gracias.
-
Hola amoruno.
En primer lugar debes hayar la pendiente de la recta:
llamando a la pendiente m
Si x2 - x1 <> 0: m = (y2 - y1) / (x2 - x1)
Si x2 - x1 = 0: m = 1
A continuación usando la ecuación explícita de la recta Y = m · X + B puedes conocer el valor para X o Y para una recta paralela (tiene la misma pendiente que la otra) que pasa por x1', y1' según un valor u otro.
Por ejemplo, para la recta r1 = (2,2)-(15,10) de pendiente
m = (10 - 2) / (2 - 15) = - 8/13
queremos hayar la coordenada en el eje X para la recta r' que pasa por el punto (3,4) y tiene pendiente m (r || r'), cuando Y = 10.
B = -m * x1 + y1 : X = (Y - B) / m
B = 8/13 * 3 + 4
X = (10 - B) / -8/13
De la misma forma si quisieramos conocer el valor de Y sabiendo el de X, tan sólo habría que despejar Y y sustituir X.
Espero no haberme equivocado y que este ejemplo te sirva.
Ánimo y suerte.
-
Disculpas, creo que en el ejemplo anterior me equivoqué, la pendiente del ejemplo no es negativa:
Por ejemplo, para la recta r1 = (2,2)-(15,10) de pendiente
m = (10 - 2) / (2 - 15) = 8/13
queremos hayar la coordenada en el eje X para la recta r' que pasa por el punto (3,4) y tiene pendiente m (r || r'), cuando Y = 10.
B = -m * x1 + y1 : X = (Y - B) / m
B = -8/13 * 3 + 4
X = (10 - B) / 8/13
Total, que conociendo 2 puntos de una recta y un punto de una paralela, con un bucle que recorra coordenadas en el eje X, puedes conocer las coordenadas correspondientes al eje Y (o viceversa).
Ahora sí. Abur.