>> Modelado – 1 << Introducción, Geometría básica LINK http://www.sc.ehu.es/ccwgamoa/docencia/Material/Presentaciones Modelado-1 A. García-Alonso
Introducción Foley Cap. 11-12-20, Hearn Cap. 10 Geometría básica Modelado geométrico Modelos o representaciones de sólidos (F 12, H 10.1,14-17) Modelado de superficies (F 11, H 10.2-10.13) Blobby objects (F 20.8.4, H 10.5) Procedimientos (F 20.2) Fractales : modelos geométricos (F 20.3, H 10.18) Gramáticas (F 20.4, H 10.19) Sistemas de partículas (F 20.5, H 10.20) Physically based modeling (F 20.7, H 10.21) Modelado-1 A. García-Alonso
Bibliografía adicional C. MacHover (Editor), “The CAD/CAM Handbook”, Ed. McGraw Hill, 1995 C. McMahon, J. Browne, “CAD CAM form Principles to Practice”, Addison-Wesley, 1993 Modelado-1 A. García-Alonso
Geometría básica El vector El punto La recta El plano Cara (plana), polígono o faceta Volúmenes Contenedores Modelado-1 A. García-Alonso
El vector Unidades Ángulo de dos vectores En variables En constantes y “#define” En interfaz de usuario Ángulo de dos vectores Sin orientar Orientado Modelado-1 A. García-Alonso
Angulo entre dos vectores b α Angulo entre dos vectores (sin orientar) : 0 ≤ α ≤ π |a|·|b|·cos α = a.b α = acos(a.b / |a|·|b|) Modelado-1 A. García-Alonso
... Angulo que forma el vector b respecto al vector a (orientado) : b La orientación debe estar definida. Se define explicitando un eje perpendicular al plano definido por los dos vectores Esto es importante para giros y transformaciones eje b a α eje b a α eje b a α eje b a α Modelado-1 A. García-Alonso
Angulo orientado Angulo orientado : -π ≤ α ≤ π αa = acos( ax / |a| ) En este caso el ángulo será positivo porque ay es mayor que cero if( ay<0) αa = - αa αb = acos( bx / |b| ) En este caso el ángulo será negativo if( by<0) αb = - αb x y z (saliente) a b αa αb Modelado-1 A. García-Alonso
La recta Modos de definir una recta Distancia punto/recta Dos puntos Punto y vector Ecuación implícita (2D) Ecuación paramétrica Estructuras de datos Distancia punto/recta Distancia-2D punto/recta Distancia-2D aproximada punto/recta Punto en recta : tolerancia Señalar segmento (2D) : tolerancia Modelado-1 A. García-Alonso
Ecuación implícita de la recta (2D) Ecuación implícita de la recta (r) A · x + B · y + C = 0 Vectores paralelos a la recta (pr) : λ · ( -B, A ), λ / λ 0 Vectores perpendiculares a la recta (nr) : λ · ( A, B ) Fácilmente se puede comprobar que pr es paralelo a la recta. Para ello, dado un punto M que pertenece a la recta comprobar que el punto M+ pr también pertenece a la recta (verifican la ecuación). Que los vectores definidos como nr son perpendiculares se demuestra multiplicándolo por el vector paralelo, y comprobando que el resultado es el vector nulo. N M nr pr Los coeficientes de la recta definida por M, N : A = Ny – My ; B = Mx – Nx ; C = - [ (Ny – My) Mx + (Mx – Nx ) My ] Modelado-1 A. García-Alonso
Distancia punto/recta Sea un punto cualquiera P, y una recta definida por dos puntos M y N La (distancia)2 de P a la recta se obtiene despejando δ2 El cálculo de δ2 requiere: 10 (*), 13 (+), 1 (/) Los módulos se elevan al cuadrado no se calculan Un dividendo se anula si M y N coinciden, pero en ese caso no definen un segmento. Frecuentemente, cuando se tienen que comparar distancias, es mejor comparar cuadrados de distancias, para evitar el tener que calcular raíces cuadradas. N P θ M δ P’ | MP’ |2 + | PP’ |2 = | MP |2 ( MN ∙ MP )2 + δ2 = | MP |2 | MN |2 Modelado-1 A. García-Alonso
Distancia-2D punto/recta El cálculo de δ2 requiere: 7 (*), 8 (+), 1 (/) δ = MP · ( nr / | nr | ) Sustituyendo y simplificando queda δ2 = [ (Px - Mx) · A + (Py - My) · B ]2 / (A2 + B2 ) N P M δ nr Modelado-1 A. García-Alonso
Distancia-2D punto/recta Ecuación implícita de la recta (r) : Ax + By + C = 0 Vectores paralelos a la recta (pr) : λ · ( -B, A ), λ / λ 0 Vectores perpendiculares a la recta (nr) : λ · ( A, B ) El cálculo de δ2 requiere: 7 (*), 8 (+), 1 (/) δ = MP · ( nr / | nr | ) Sustituyendo y simplificando queda δ2 = [ (Px-Mx) A + (Py-My) B) ] 2 / (A2 + B2 ) Fácilmente se puede comprobar que pr es paralelo a la recta. Para ello, dado un punto M que pertenece a la recta comprobar que el punto M+ pr también pertenece a la recta (verifican la ecuación). Que los vectores definidos como nr son perpendiculares se demuestra multiplicándolo por el vector paralelo, y comprobando que el resultado es el vector nulo. N P M δ nr pr Modelado-1 A. García-Alonso
Distancia-2D aproximada punto/recta Podemos usar una “distancia” evaluada en vertical El cálculo de δvert requiere: 3 (*), 4 (+), 1 (/), 1 (abs) Restringimos el cálculo a rectas de pendiente [-1,+1] Para rectas con pendiente de valor absoluto mayor que 1, se intercambian los ejes x e y Evita una degeneración del área de captura Evita el problema de rectas con pendiente que tiende a infinito Observar que b, Py, (m·Px-b) son valores “con signo”. En cambio δv es positiva. N P M δv = abs( Py – (m·Px-b) ) x y Py m·Px-b b m = tg θ Despejar la pendiente (m) y el pie (b) : My = m·Mx-b Ny = m·Nx-b Modelado-1 A. García-Alonso
Señalar segmento (2D) : tolerancia El sistema informa de qué píxel se ha señalado Comprobamos si ese punto es interior a un área para: Evitar problemas de precisión Mejorar ergonomía: facilitar al operador la acción de señalar El punto no es próximo al segmento si : Es exterior al contenedor rectangular “recrecido en ξ” Su distancia a la recta soporte es superior a ξ Numerosos segmentos : técnicas de ordenación espacial PRECISION : En teoría, para señalar un segmento, el punto señalado debe satisfacer la ecuación de la recta que pasa por los puntos A y B. Sin embargo, es casi imposible que se verifique esto, pues los puntos se señalan en un entorno altamente discreto (píxeles). ERGONOMIA : es más cómodo para el operador señalar un punto en las proximidades del segmento que posicionar el cursor justo encima del segmento. Conclusión : definición de un “área de captura” Cuando tenemos una lista de segmentos y buscamos si alguno de ellos es próximo a un punto dado, hay que tener presente que, al comparar un segmento dado con el punto, el caso más habitual es que el punto no esté en el área de captura de ese segmento. Por ese motivo se emplean en primer lugar los criterios que, con menor coste, nos permiten determinar que el punto está alejado del segmento. Con sólo la siguiente operación se eliminará un porcentaje alto de segmentos (sobre el 30-40% según el punto y las características de las escena) if ( px > max(nx, mx)+ξ ) return (el punto no está cerca del segmento) Añadiendo otra comparación el porcentaje de segmentos descartados será ya muy elevado (60-80%, ídem) if ( px < min(nx, mx)-ξ ) return (no está cerca) Habrá que realizar otras comparaciones en “y” Finalmente se evaluará la distancia punto-segmento El valor que se asigna a ξ será una fracción de la anchura o altura del recuadro. Por ejemplo, una 300 parte de la anchura. Si el número de segmentos presentes en el modelo fuera muy elevado, en vez de analizar cada uno de los segmentos presente en el modelo habría que implementar técnicas de ordenación espacial. Área de captura “ideal” Área de captura que implementamos ξ Modelado-1 A. García-Alonso
El plano Modos de definir un plano Distancia punto/plano Ecuación implícita Interpretación de “las ecuaciones” de un plano : vector normal Semi-espacios definidos por un plano Distancia plano a origen Tres puntos Punto y vector normal, punto y dos vectores Elementos geométricos Distancia punto/plano Punto en el plano : tolerancia Señalar plano Modelado-1 A. García-Alonso
Ecuación implícita del plano Un plano está formado por todos los puntos P que satisfacen la ecuación: A·Px + B·Py + C·Pz + D = 0 Existen infinitas descripciones del plano λ·(A, B, C, D) λ·(A, B, C) representa las componentes de todos los vectores normales al plano. De ellos, sólo dos son unitarios Si el plano está asociado a una cara de un sólido, se suele usar la normal unitaria hacia el exterior Conocido un vector normal (nx , ny , nz) y un Punto P del plano: A = nx, B = ny, C = nz, D = - (nx · Px+ny · Py+ nz · Pz) Normal unitaria hacia el exterior Normales al plano Modelado-1 A. García-Alonso
Semiespacios definidos por un plano Sea P(x,y,z) un punto cualquiera del espacio Sea el plano (nx, ny, nz, D) La función F(P) = nx · Px + ny · Py + nz · Pz + D Divide el espacio en dos semiespacios, En uno se verifica que F(P)>0 y en el otro F(P)<0 nz > 0 semiespacio + A y z O semiespacio - En A (corte eje z con el plano), x = y = 0 nz · z + D = 0 y como, nz > 0 y z < 0 D>0 O está en el semiespacio + semiespacio - nz > 0 semiespacio + B y z O En B, x = y = 0 nz · z + D = 0 y, nz > 0 y z > 0 D<0 O está en el semiespacio - Modelado-1 A. García-Alonso
Distancia punto/plano Sea M un punto cualquiera del plano, y n un vector normal al plano, unitario. Se cumplirá : δ = abs( MP · n) n P M δ Modelado-1 A. García-Alonso
Caras (planas), polígonos o facetas Modos de definir una cara xxx Punto interior a una cara Clasificación Forma adecuada Cálculo del vector normal Modelado-1 A. García-Alonso
Clasificación Cóncavas y convexas Múltiplemente conexos Cruces de aristas Modelado-1 A. García-Alonso
Forma adecuada Problemas de precisión Rapidez de cálculo Evitar polígonos Cóncavos Ángulos muy agudos o próximos al recto (180º) Con aristas tangentes o secantes Con desproporción en las magnitudes de los lados Triángulos y cuadriláteros fomentar Formas equiláteras Fomentar formas isósceles o rectangulares Modelado-1 A. García-Alonso
Cálculo del vector normal Método simple Usar tres primeros vértices Problemas Polígonos cóncavos Vértices no coplanarios Vértices alineados Uso método ponderado (Foley 11.1.3) nx = 0.5 · (zi + zi1 ) · (yi1 - yi ) ny = 0.5 · (xi + xi1 ) · (zi1 - zi ) nz = 0.5 · (yi + yi1 ) · (xi1 - xi ) ( i: 1 n ) Modelado-1 A. García-Alonso
Volúmenes contenedores Geometría Caja contenedora (AABB axis aligned bounding box) El menor prisma rectangular de caras paralelas a los planos coordenados que contiene al cuerpo dado Para poliedros : Inicializar valores min-max con un vértice del cuerpo Recorrer la geometría recreciendo esos valores iniciales Esfera Envolvente convexa xmax z y xmin zmin zmax x ymin ymax Modelado-1 A. García-Alonso
... Sistema de referencia Modelado, mundo, cámara Jerarquías : dependiente/independiente del tiempo Pre-procesado / regenerado (cuándo) Sistema modelado : varía forma Sistema mundo : cambio de posición o forma Sistema cámara : cambio posición relativa o forma Modelado-1 A. García-Alonso