Vous êtes sur la page 1sur 14

Ecuacin de la recta que pasa por dos puntos

Sean P(x1,y1) y Q(x2,y2) dos puntos de una recta. En base a estos dos puntos conocidos de una recta, es posible determinar su ecuacin. Para ello tomemos un tercer punto R(x,y), tambin pertenciente a la recta. Como P, Q y R pertenecen a la misma recta, se tiene que PQ y PR deben tener la misma pendiente. O sea

y Luego, la ecuacin de la recta que pasa por dos puntos es:

que tambin se puede expresar como

Ejemplo: Determina la ecuacin de la recta que pasa por los puntos P(1,2) y Q(3,4)

y-2=x-1 x-y+1=0

4.4 FORMAS DE LA ECUACIN DE LA LINEA RECTA

4.4.1.Ecuacin De La Recta Que Pasa Por El Origen

Considere la recta l que pasa por el origen 0 y forma un ngulo de inclinacin


con el eje x (fig. 4.6.)

Fig. 4.6 Tmese sobre la recta los puntos P1(x1, y1),P2 (x2, y2) y P3 (x3, y3). Al proyectar los puntos P1, P2 y P3 sobre el eje x, se obtienen los puntos P1, P2, P3. Como los tringulos OP1P1, OP2P2 y OP3P3 son semejantes; se tiene que:

Esto es, cualquiera que sea el punto P(x, y) sobre l,

y = mx (1)

La ecuacin (1) es la ecuacin de la recta que pasa por el origen y tiene pendiente conocida m.
..

4.4.2. Ecuacin De La Recta Conocida Su Pendiente m Y Su Intercepto b Con El Eje y

Considere una recta l de la que se conocen m (m = tan

) y b (ver fig. 4.7.)

fig. 4.7. Trcece por el origen la recta l paralela a l. Sea P(x, y) un punto de l. Al llamar P la proyeccin de P sobre el eje x; PP corta a la recta l en un punto P de coordenadas P(x, Y), Y y.

Como P (x, Y) est sobre l, entonces Ahora, el cuadriltero OBPP es un paralelogramo. Luego, PP = OB = b. Y se tiene que: Y = PP = PP + PP = Y + b = mx + b.

, de donde Y = mx

Es decir, para todo (x, y) l, y = mx + b = (tan )x + b La ecuacin y = mx + b es la ecuacin de la recta en trminos de su pendiente m y su intercepto b con el eje y.
..

4.4.3. Ecuacin De La Recta Que Pasa Por Un Punto Y De Pendiente Conocida

Considere la recta l que pasa por un punto dado P (x , y ) y cuya pendiente m


1 1 1

tambin es conocida.
.

Al llamar b al intercepto de la recta l con el eje y, entonces la ecuacin de l, viene dada por: y = mx + b (1) Como P1(x1, y1) l, entonces satisface (1) y en consecuencia se tiene: y1 = mx1 + b (2)

fig. 4.8 Al restar de la ecuacin (2) la ecuacin (1) se elimina el parmetro b que se desconoce y se obtiene: y y1 = m(x x1) (3) La ecuacin (3) es conocida como la forma: PUNTO-PENDIENTE de la ecuacin de la recta. Ntese que la ecuacin (3) tambin puede escribirse en la forma: y = mx + (y1 mx1). Lo que indica que el intercepto b con el eje y viene dado por: b = y1 mx1
..

4.4.4. Ecuacin de la recta que pasa por dos puntos dados P1(x1, y1) y P2(x2, y2)

Sea l la recta que pasa por los puntos P (x , y ) y P (x , y ) y llmese m


1 1 1 2 2 2

su

pendiente.
....

Como l pasa por el punto P1(x1, y1) y tiene pendiente m1, se tiene de acuerdo a 4.4.3, que y y1 = m1 (x x1) (1) representa la ecuacin de dicha recta. Ahora, como el punto P2(x2, y2) l, entonces satisface su ecuacin.

fig. 4.9.

Esto es y2 y1 = ; de donde Sustituyendo (2) en (1) se obtiene

(2)

(3)

....

4.4.5. Ecuacin segmentaria de la linea recta

Considere la recta l de la cual conocemos los interceptos a y b con los ejes x e y


respectivamente (fig. 4.10)

Como l pasa por los puntos A(a, 0) y B(0, b), entonces de acuerdo a la seccin la ecuacin de l viene dada por:

Es decir, de donde,

fig. 4.10 Dividiendo esta ltima ecuacin por b, se obtiene:

(1) La ecuacin (1) se conoce como la ecuacin SEGMENTARIA, CANNICA O FORMA DE LOS INTERCEPTOS de la linea recta. Los nmeros a y b son las medidas de los segmentos que la recta intercepta con cada eje, con su signo correspondiente, pues haciendo en (1) y = 0, resulta x = a (Intercepto con el eje x) x = 0, resulta x = b (Intercepto con el eje y)
..

4.4.6. Ecuacin general de la linea recta

La ecucin Ax + By +C = 0 donde A, B, C son nmeros reales y A, B no son


simultneamente nulos, se conoce como la ECUACIN GENERAL de primer grado en las variables x e y.

La ecuacin explcita de la recta cuando se conocen dos puntos excluye las rectas paralelas al eje y, cuyas ecuaciones son de la forma x = constante, pero todas las rectas del plano, sin excepcin, quedan incluidas en la ecuacin Ax + By + C = 0 que se conoce como: la ecuacin general de la linea recta, como lo afirma el siguiente teorema: TEOREMA La ecuacin general de primer grado Ax + By + C = 0 (1) , A, B, C son simultneamente nulos, representan una linea recta. R; A y B no

Demostracin i. Se puede Considerar varios casos: A = 0, B diferente de 0. En este caso, la ecuacin (1) se transforma en By + C = 0,0de donde

(2)

La ecuacin (2) representa una linea recta paralela al eje x y cuyo intercepto con el eje y es

(fig. 4.11)

fig. 4.11. En este caso, la ecuacin (1) se transforma en Ax + C = 0, de

ii. donde

(3) La ecuacin (3) representa una linea recta paralela al eje y y cuyo

intercepto con el eje x es (fig. 4.12)

fig. 4.12. En este caso, la ecuacin (1) puede escribirse en la siguiente

iii.

forma:

(4) La ecuacin (4) representa una linea recta, cuya pendiente es

y cuyo intercepto con

el eje y viene dado por (fig. 4.13)

fig. 4.13. obeservaciones i. de tal manera que solo involucre dos constantes. Es decir, si A, B y C son todos distintos de cero, podemos escribir la ecuacin (1), en las siguientes formas equivalentes: Es posible escribir la ecuacin general de la linea recta en varias formas,

(1A)

(1B)

Algoritmo basado en la ecuacin de la recta


Algoritmo bsico
El algoritmo bsico utiliza la ecuacin de la recta expresada como y = mx + b

Si la recta se dibuja desde el punto (x0, y0) hasta el punto (x1, y1), el algoritmo varia x desde x0 hasta x1 en incrementos de una unidad. El siguiente es el cdigo en Java.
public void rectaSimple(int x0, int y0, int x1, int y1, Graphics g){ int dx = x1 - x0; int dy = y1 - y0; g.drawLine( x0, y0, x0, y0);//funciona!! if (dx != 0){ float m = (float) dy / (float) dx; float b = y0 - m*x0; if(x1 > x0) dx = 1; else dx = -1; while (x0 != x1) { x0 += dx; y0 = Math.round(m*x0 + b); g.drawLine( x0, y0, x0, y0); } } }

El siguiente applet permite ver el proceso paso a paso. Seleccione dos puntos sobre la cuadrcula y presione el botn "Siguiente" para ejecutar cada paso. Para borrar presione el botn "Borrar". Note que para pendientes mayores de 45 o menores de 45 el algoritmo dibuja rectas discontinuas.

Algoritmo bsico para cualquier pendiente


El siguiente algoritmo es una mejora sobre el anterior. el algoritmo dibuja rectas con cualquier pendiente. public void rectaSimple2(int x0, int y0, int x1, int y1, Grtaphics g) { int dx = x1 - x0; int dy = y1 - y0; g.drawLine( x0, y0, x0, y0); if (Math.abs(dx) > Math.abs(dy)) { float m = (float) dy / (float) dx; float b = y0 - m*x0; if(dx<0) dx = -1; else dx = 1;

// pendiente < 1

while (x0 != x1) { x0 += dx; y0 = Math.round(m*x0 + b); g.drawLine( x0, y0, x0, y0); } } else if (dy != 0) { float m = (float) dx / (float) dy; float b = x0 - m*y0; if(dy<0) dy = -1; else dy = 1; while (y0 != y1) { y0 += dy; x0 = Math.round(m*y0 + b); g.drawLine( x0, y0, x0, y0); } } }

// slope >= 1 // compute slope

Algoritmo de Bresenham
El algoritmo busca cual de dos pxeles es el que esta mas cerca segn la trayectoria de la lnea. Consideremos el proceso de conversin para lneas con pendiente positiva 0 < m < 1. Las posiciones de pxel a lo largo de la trayectoria de una lnea se determinan al efectuar un muestreo de x en intervalos unitarios. 1. Se capturan los dos extremos de la lnea y se almacena el extremo izquierdo en (x0,y0). 2. Se traza el primer punto (x0, y0). 3. Se calculan las constantes Dy, Dx, 2Dy, 2Dy-2Dx, y se obtiene el valor inicial para el parmetro de decisin como p0 = 2 Dy -Dx. 4. En cada xk a lo largo de la lnea, que inicia en k = 0, se efecta la prueba siguiente: si pk < 0, el siguiente punto que se debe trazar es (xk+1, yk) y pk +1 = pk + 2 Dy. De otro modo, el siguiente punto en trazarse es (xk+1, yk+1) y pk +1 = pk + 2 Dy - 2Dx. 5. Se repite el paso 4 otras Dx veces. void LineBres(Graphics g, int x0, int y0, int x1, int y1){ int x, y, dx, dy, xend, p, incE, incNE; dx = abs(x1 - x0); dy = abs(y1 - y0); p = 2*dy - dx; incE = 2*dy;

incNE = 2*(dy-dx); /* determinar que punto usar para empezar, cual para terminar */ if (x0 > x1) { x = x1; y = y1; xend = x0; } else { x = x0; y = y0; xend = x1; } g.drawLine( x0, y0, x0, y0); /* se cicla hasta llegar al extremo de la lnea */ while (x <= xend){ g.drawLine(x,y,x,y); x = x + 1; if (p < 0) p = p + incE else { y = y + 1; p = p + incNE; } g.drawLine( x0, y0, x0, y0); } } El algoritmo de Bresenham se generaliza para lneas con una pendiente arbitraria al considerar la simetra entre los diversos octantes y cuadrantes del plano de xy. Para una lnea con una pendiente m > 1, intercambiamos las funciones de las direcciones de x y y, o sea, pasamos a lo largo de y en pasos unitarios y calculamos los valores sucesivos de x que se aproximan mas a la trayectoria de la lnea. Asimismo, podemos revisar el programa para trazar pxeles iniciando desde cualquier extremo. El programa resultante es el siguiente: public void Bresenham(Graphics g,int x0, int y0, int x1, int y1) int x, y, dx, dy, p, incE, incNE, stepx, stepy; dx = (x1 - x0); dy = (y1 - y0); /* determinar que punto usar para empezar, cual para terminar */ if (dy < 0) { dy = -dy; stepy = -1; } else

stepy = 1; if (dx < 0) { dx = -dx; stepx = -1; } else stepx = 1; x = x0; y = y0; g.drawLine( x0, y0, x0, y0); /* se cicla hasta llegar al extremo de la lnea */ if(dx>dy){ p = 2*dy - dx; incE = 2*dy; incNE = 2*(dy-dx); while (x != x1){ x = x + stepx; if (p < 0){ p = p + incE; } else { y = y + stepy; p = p + incNE; } g.drawLine( x0, y0, x0, y0); } } else{ p = 2*dx - dy; incE = 2*dx; incNE = 2*(dx-dy); while (y != y1){ y = y + stepy; if (p < 0){ p = p + incE; } else { x = x + stepx; p = p + incNE; } g.drawLine( x0, y0, x0, y0); } } }

Vous aimerez peut-être aussi