graficaci ón ia7200-t

Post on 12-Jan-2016

29 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Graficaci ón IA7200-T. Líneas Ocultas. Introducción Visibilidad Representación 3D Figuras con hoyos Caras y líneas (estructura de datos) Interfaz gráfica Gráficas de Tortuga. Líneas Ocultas. Segmentos y Triángulos. Segmentos y Triángulos. Visibilidad. - PowerPoint PPT Presentation

TRANSCRIPT

GraficaciónIA7200-T

Líneas Ocultas

Graficación 2

Líneas Ocultas• Introducción• Visibilidad• Representación 3D• Figuras con hoyos• Caras y líneas (estructura de datos)• Interfaz gráfica• Gráficas de Tortuga

Graficación 3

Segmentos y Triángulos

Graficación 4

Segmentos y Triángulos

Graficación 5

Visibilidad

lineSegment(line PQ, S set of triangles)In set S, try to find a triangle ABC that obscures PQ (or part of it) If no such triangle found,

Draw PQ Else

If triangle ABC leaves part PI of PQ visible lineSegment(PI, the remaining triangles of s);

If triangle ABC leaves JQ of PQ visible lineSegment(JQ, the remaining triangles of s);

Graficación 6

Detalles de Implementación

Graficación 7

Caso 1 (2D)• Minimax Test

• Max(P,Q)<=Min(A,B,C)

• ABC no obstruye a PQ

• = para el caso simétrico

Graficación 8

Caso 2 (3D)• Igualdad de vértices• ABC no obstruye a PQ• Comparación por # vértice - eficiente• No siempre es posible

Graficación 9

Caso 3 (3D)• Minimax 3D en z• Min(P,Q)<=Max(A,B,C)• ABC no obstruye a PQ

• = para el caso simétrico

Graficación 10

Caso 4 (2D)• PQ en un lado de AB

• C en el otro lado

• Si ABC es CCW y ABP y ABQ son CW

• ABC no obstruye a PQ

• (= para lados BC y CA)

Graficación 11

Caso 5 (2D)

• PQA = área del tríangulo PQA• PQA < 0 si PQA es CW• ABC no obstruye a PQ

Graficación 12

Caso 6 (3D)• Funciona cuando el caso 3 falla

• ABC no obstruye a PQ

Graficación 13

Caso 7 (2D)• PQ dentro de ABC• Si todos los demás casos no decidieron, ABC

oculta completamente a PQ• boolean pInside = Tools2D.insideTriangle(aScr, bScr, cScr, pScr);

boolean qInside = Tools2D.insideTriangle(aScr, bScr, cScr, qScr);

Graficación 14

Caso 8 (3D)• P más cerca que ABC (o Q)

• pNear: hP > hqNear: hQ > h

• pNear && pInside || qNear && qInside• ABC no obstruye a PQ

Graficación 15

Caso 9 (3D)• ABC obstruye parcialmente a PQ

1. Calcular (las proyecciones 2D de) I y J en la pantalla.

2. Calcular los valores z de I y J (interpolación lineal de 1/z).

3. Calcular distancia de I y J en dirección del plano.

Graficación 16

Caso 9-1

• Esto se cumple para dos lados

• u=PQ, v=AB, w=A-P

A

B

C

Graficación 17

Caso 9-2

• Se debe usar 1/z en lugar de z

Graficación 18

Caso 9-3• n = (a,b,c) – normal al triángulo

• P dentro de ABC?

• Q dentro de ABC?

• P y Q dentro de ABC?

Graficación 19

lineSegmentvoid lineSegment(Graphics g,

Point3D p, Point3D q, Point2D PScr, Point2D QScr, int iP, int iQ, int iStart)

• Si no se cuenta con número de vértice (iP, iQ), se usa -1

• iStart indica el índice del triángulo donde comenzamos

Graficación 20

Gráficas de Tortuga• Mostrar Gráficas de Tortuga en Java

Graficación 21

Gráficas de Tortuga• 3D: 3 ángulos para especificar la dirección

(H, L, U)

• 6 Comandos de Giro

Graficación 22

Gráficas de Tortuga

Graficación 23

Gráficas de Tortuga• Comandos de Tortuga 3D

Graficación 24

Gráficas de Tortuga• Ejemplo:

Graficación 25

Gráficas de Tortuga

top related