130 likes | 479 Views
Graficaci ó n IA7200-T. Primitivas de Dibujo y Transformaciones Programas en Java. Primitivas de Dibujo Swing de Java: drawLine() drawRect() drawString() Formas Simples: Rectangle Ellipse Aplicaciones de Java Objetos JFrame Objetos JPanel. Trasformaciones de Coordenadas
E N D
GraficaciónIA7200-T Primitivas de Dibujo y Transformaciones Programas en Java
Primitivas de Dibujo Swing de Java: drawLine() drawRect() drawString() Formas Simples: Rectangle Ellipse Aplicaciones de Java Objetos JFrame Objetos JPanel Trasformaciones de Coordenadas Translación Rotación Escalamiento Deformación (Shearing) Recortes de Coordenadas Rectilineo Por forma Contenido
Programas completos que pueden ser ejecutados de forma independiente Es más difícil escribir programas simples que Applets Demasiado código alrededor de la aplicación, que los applets proporcionan de manera automática Heredar (Extend) de un Frame o JFrame Jframe = entidad Swing Aplicaciones Java
MyProg01 Rectángulo negro en fondo blanco Estructura: Un JPanel dentro de un JFrame Método paintComponent() Más acerca de Java y Swing en el curso El manejador de ventanas lanza una ventana independiente para la aplicación, con sus propias gráficas, botones, etc. Se puede correr desde una terminal Aplicaciones Java
MyProg02 Misma estructura que MyProg01 Diferentes comandos de graficación Cada vez que el sistema llama a paintComponent() se imprime: paintComponent: ancho=532 paintComponent: alto=532 Se puede usar setResizeable(true) para que el usuario pueda cambiar el tamaño se la ventana en tiempo de ejecución. Aplicaciones Java
translate(x, y); Puede ser aplicado e objetos de tipo Graphics o Graphics2D Desplaza el origen en magnitudes x, y No distorsiona Desliza el dibujo en el espacio de Coordenadas Cartesianas Transformaciones: Translación
rotate(angulo); Angulo debe estar en radianes 360°= 2 π radianes Puede ser aplicado a Graphics y Graphics2D Rota el dibujo Un ángulo positivo va del eje +x al eje +y Recuerden que y “va hacia abajo” Transformaciones: Rotación
scale(x,y); Puede usarse con Graphics y Graphics2D Estira o encoge el espacio de coordenadas Ejemplo: scale( 1.0, -1.0); Hace que la y “vaya hacia arriba” Transformaciones: Escalamiento
shear(shx, shy); El primer argumento es la deformación en dirección x, como factor de y El segundo es la deformación de y como factor de x Distorciona el espacio de dibujo Puede ser usado con Graphics y Graphics2D Transformaciones: Deformación (Shearing)
MyProg03 Mismo código que MyProg01 y 02 Demuestra las Transformaciones Afines y corre hacia abajo, los ángulos positivos se ven como negativos Ángulos positivos van de +x a +y (convención) Más tarde estudiaremos la trigonometría y álgebra lineal de estas transformaciones Aplicaciones Java
MyProg04 Mismo código que 01-03 Usa una Constante int SQUARE_SIZE =10 Dibuja un patrón espiral usando transformaciones afines sucesivas Rota 12 grados, y traslada progresivamente Aplicaciones Java
MyProg05 Ejemplo de Recorte (Clipping) Clipping es limitar el área de dibujo - i.e. Recortando partes indeseadas Podemos usar recortes rectlíneos simples O mas complejos - v.g. un círculo Aplicaciones Java
Podemos escribir aplicaciones de Java que corren en su propia ventana usando JFrames La biblioteca de Swing tiene muchas primitivas interesantes para dibujo Hay muchas formas geométricas útiles y rutinas diversas Las Transformaciones pueden ser aplicadas al espacio de coordenadas de dibujo Se puede hacer Clipping para limitar lo que dibujamos Los programas estudiados usan código estático de dibujo Escribiremos programas más interesantes que decidan dinámicamente que dibujar (render)… Resumen