ALG III - G7 Algoritmos Geometricos 2010 II

Embed Size (px)

Citation preview

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

GUIA 7

Algoritmos geomtricos y NumricosAlbert Einstein (14 de marzo de 1879 18 de abril de 1955), nacido en Alemania y nacionalizado en Estados Unidos en 1940, es el cientfico ms conocido e importante del siglo XX. En 1905, siendo un joven fsico desconocido, empleado en la Oficina de Patentes de Berna (Suiza), public su Teora de la Relatividad Especial. En ella incorpor, en un marco terico simple y con base en postulados fsicos sencillos, conceptos y fenmenos estudiados anteriormente por Henri Poincar y Hendrik Lorentz. Probablemente, la ecuacin de la fsica ms conocida a nivel popular es la expresin matemtica de la equivalencia masa - energa, E=mc2, deducida por Einstein como una consecuencia lgica de esta teora. Ese mismo ao public otros trabajos que sentaran algunas de las bases de la fsica estadstica y la mecnica quntica.

"Soy en verdad un viajero solitario expres Einstein e una ocasin-, y los ideales que han iluminado mi camino y han proporcionado una y otra vez nuevo valor para afrontar la vida han sido: la belleza, la bondad y la verdad."

En 1951 present la Teora General de la Relatividad, en la que reformul por completo el concepto de gravedad. Una de las consecuencias fue el surgimiento del estudio cientfico del origen y evolucin del Universo por la rama de la fsica denominada cosmologa. Muy poco despus, Einstein se convirti en un icono popular de la ciencia alcanzando fama mundial, un privilegio al alcance de muy pocos cientficos. Obtuvo el Premio Nobel de Fsica en 1921 por su explicacin del efecto fotoelctrico y sus numerosas contribuciones a la fsica terica, y no por la Relatividad, pues en esa poca era an considerada un tanto controvertida por parte de muchos cientficos.

Augusto Cortez Vsquez

Pg. 1/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

Objetivos de aprendizajeEl objetivo principal es iniciar al alumno en el diseo y anlisis de algoritmos geomtricos y algoritmos aritmticos. Para ello se muestran las tcnicas bsicas de la Geometra computacional

ALGORITMOS GEOMETRICOSLa geometra computacional es una rama de las ciencias de la computacin que emergi en la dcada de 1970. Estudia los algoritmos que resuelven problemas geomtricos

Aplicaciones Diseo de VLSI CAD diseo asistido por computadoras CAM GIS sistema de informacin geogrfica Las aplicaciones en geometra computacional actan sobre objetos geomtricos simples: punto, recta y polgono Punto: objeto fundamental y es considerado como un par de enteros (x,y) Lnea: par de puntos unidos por un segmento de lnea recta Se puede representar como un struct(x,y) o una clase{x,y} Polgono: Secuencia de segmentos de lnea que unen un conjunto de puntos formando Polgono convexo: un polgono convexo, es un polgono con la propiedad de que cualquier segmento de recta cuyos extremos estn en el polgono cae por completo dentro del polgono

Augusto Cortez Vsquez

Pg. 2/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

Algunas aplicacionesEjemplo 1 Problema de Construccin de una recta que pasa por un par de puntos

Dados dos puntos P y Q, se quiere construir la recta que pase por los dos puntos. Para ello se construye halla la pendiente formada por el segmento de recta PQ. La ecuacin de la recta L tiene la forma y = mx +b Sea P=(X1,Y1) y Q=(X2,Y2) m = (Y2-Y1) / (X2-X1) Cualquier punto (X, Y) en la recta L debe satisfacer tambin la ecuacin m= (Y-Y1) / (X-X1) = (Y2-Y1) / (X2-X1) Despejando Y se tiene Y = [(Y2-Y1) / (X2-X1)] * (X-X1) + Y1 De donde se obtiene que m= (Y2-Y1) / (X2-X1) b= (Y2-Y1) / (X2-X1) *X1 + Y1

package algoritmos_geometricos; // Augusto Cortez Vasquez public class Recta { private private private private double P1[]= new double[2]; double P2[]= new double[2]; double m=0; double b=0;

public Recta(double x1,double y1,double x2,double y2){ P1[0]=x1;

Augusto Cortez Vsquez

Pg. 3/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

P1[1]=y1; P2[0]=x2; P2[1]=y2; } public double pendiente(){ m=(P1[1]-P2[1])/(P1[0]-P2[0]); return (m); } public double b() { b=P2[1]-(m*P2[0]); return(b); } public boolean pertenencia(double x, double y) { boolean sw=false; double aux=m*x+b; if(aux==y) sw=true; return sw; } public int lado(double x1, double y1 ){ double aux; double lado; aux = (y1-b)/m; lado=x1-aux; if (lado