Вы находитесь на странице: 1из 8

Materia:

GRAFICACION
Nombre del trabajo:
4.1. RELLENADO DE POLGONOS
Carrera:
INGENIERIA EN SISTEMAS COMPUTACIONALES

Catedrtico:
NICOLAS CABRERA HIDALGO
Estudiante:

RICARDO ENRIQUE DE LA PARA AGUIRRE


Nmero de control:
13510644

Martes, 26 de abril del 2016


INTRODUCCIN

Para elegir el color de los polgonos, basta con hacer una llamada a
glColor entre la definicin de cada polgono.

Esta modificacin provocar que el primer tringulo se ponga en rojo y el


segundo en verde. La funcin glColor define el color de rellenado actual y
lleva como parmetros los valores de las componentes RGB del color
deseado y, opcionalmente, un cuarto parmetro con el valor alpha. Estos
parmetros son flotantes y se mueven en el rango [0.0, 1.0].
4.1 RELLENO DE POLGONOS

Polgono es una figura bsica dentro de las representaciones y


tratamiento de imgenes bidimensionales y su utilizacin es muy
interesante para modelar objetos del mundo real.

En un sentido amplio, se define como una regin del espacio delimitada


por un conjunto delineas (aristas) y cuyo interior puede estar rellenado por
un color o patrn dado.

CASOS DE RELLENO SEGN SU COMPLEJIDAD


El caso ms sencillo de relleno es el tringulo.
Luego sigue el relleno de polgonos convexos de N-lados.
Relleno de polgonos cncavos.

SCAN-LINE

Fila a fila van trazando lneas de color entre aristas para scan-line que
cruce el polgono se busca en la interseccin entre las lneas de barrido y
las aristas del polgono.
Dichas intersecciones se ordenan y se rellenan a pares.

LINEA DE BARRIDO

Es vlido para polgonos cncavos como convexos. Incluso para si el


objeto tiene huecos interiores.

Funcionan en el trozo de lneas horizontales, denominadas lneas de


barridos, que intersectan un nmero de veces, permitiendo a partir de
ella identificar los puntos que se consideran interiores al polgono.

INUNDACIN
Empieza en un interior y pinta hasta encontrar la frontera del objeto.
Partimos de un punto inicial (x,y), un como de relleno y un color de
frontera.
El algoritmo va testeando los pxeles vecinos a los ya pintados, viendo si
son frontera o no.

No solo sirven para polgonos, sino para cualquier rea curva para
cualquier imagen AE se usan los programas de dibujo.

FUERZA BRUTA
Calcula una caja contenedora del objeto.

Hace un barrido interno de la caja para comprobar c/pixel este dentro


del polgono.

Con polgonos simtricos basta con que hagamos un solo barrido en


una seccin y replicar los dems pixeles.
Requiere aritmtica punto-flotante, esto lo hace preciso y costoso.

Modelos bsicos de iluminacin

Entendemos por modelo de iluminacin el clculo de la intensidad de


cada punto de la escena.
En el clculo de la intensidad de un punto intervienen:

El tipo e intensidad de la fuente de luz


El material del objeto
La orientacin del objeto con respecto a la luz
El modelo ms utilizado es el modelo de Phong.

Ejemplos en java.
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Polygon;
import javax.swing.JFrame;
public class Polys extends JFrame {

//Declaramos variables

//Coordenadas en x para un polgono rojo


private int poliXR[] = {75, 25, 40, 110, 125};
//Coordenadas en y para un polgono rojo
private int poliYR[] = {50, 90, 150, 150, 90};
//Coordenadas en x para un polgono azul
private int poliXB[] = {325, 275, 290, 360, 375};
//Coordenadas en y para un polgono azul
private int poliYB[] = {50, 90, 150, 150, 90};
private Polygon poliR; //Polgono de la clase
Polygon
private Polygon poliG; //Polgono de la clase
Polygon

public Polys() {

//Crea un polgono con 5 vrtices


poliR = new Polygon(poliXR, poliYR, 5);
//Crea un nuevo polgono vaco
poliG = new Polygon();
//Agrega los puntos (x, y) al polgono
poliG.addPoint(200, 50);
poliG.addPoint(150, 90);
poliG.addPoint(165, 150);
poliG.addPoint(235, 150);
poliG.addPoint(250, 90);
//Titulo del JFrame
setTitle("Dibujando Poligonos y Polilineas");
//Operacin de salida del JFrame

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Tamao del JFrame
setSize(400, 200);
//Fija el tamao del JFrame, no
redimensionable
setResizeable(false);
//Hace visible el JFrame en la pantalla
setVisible(true);
}
public static void paint(Graphics g) {

g.setColor(Color.WHITE); //Color Blanco


//Rellena el fondo de color Blanco
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.RED); //Color Rojo
//Dibuja un polgono rojo
g.drawPolygon(poliR);
g.setColor(Color.GREEN); //Color Verde
//Rellena un polgono Verde
g.fillPolygon(poliG);
g.setColor(Color.BLUE); //Color Azul
//Dibuja una polilnea Azul
g.drawPolyline(poliXB, poliYB, 5);
}
public static void main(String args []) {

//Crea una nueva instancia de la clase Polys


Polys poligonos = new Polys();
}
}

import java.awt.Graphics;
import java.awt.Polygon;
import javax.swing.JPanel;

public class PoligonosJPanel extends JPanel


{
// dibuja polgonos y polilneas
public void paintComponent( Graphics g )
{
super.paintComponent( g ); // llama al mtodo paintComponent
de la superclase

// dibuja polgono con objeto polgono


int valoresX[] = { 20, 40, 50, 30, 20, 15 };
int valoresY[] = { 50, 50, 60, 80, 80, 60 };
Polygon poligono1 = new Polygon( valoresX, valoresY, 6 );
g.drawPolygon( poligono1 );

// dibuja polilneas con dos arreglos


int valoresX2[] = { 70, 90, 100, 80, 70, 65, 60 };
int valoresY2[] = { 100, 100, 110, 110, 130, 110, 90 };
g.drawPolyline( valoresX2, valoresY2, 7 );

// rellena polgono con dos arreglos


int valoresX3[] = { 120, 140, 150, 190 };
int valoresY3[] = { 40, 70, 80, 60 };
g.fillPolygon( valoresX3, valoresY3, 4 );

// dibuja polgono relleno con objeto Polygon


Polygon poligono2= new Polygon();
poligono2.addPoint( 165, 135 );
poligono2.addPoint( 175, 150 );
poligono2.addPoint( 270, 200 );
poligono2.addPoint( 200, 220 );
poligono2.addPoint( 130, 180 );
g.fillPolygon( poligono2);
} // fin del mtodo paintComponent
} // fin de la clase PoligonosJPanel

-------------------------------------------------------------
-------------------------------------

// Fig. 12.28: DibujarPoligonos.java


// Dibujo de polgonos.
import javax.swing.JFrame;

public class DibujarPoligonos


{
// ejecuta la aplicacin
public static void main( String args[] )
{
// crea marco para objeto PoligonosJPanel
JFrame marco = new JFrame( "Dibujo de poligonos" );
marco.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

PoligonosJPanel poligonosJPanel = new PoligonosJPanel();


marco.add( poligonosJPanel ); // agrega poligonosJPanel al
marco
marco.setSize( 280, 270 ); // establece el tamao del marco
marco.setVisible( true ); // muestra el marco
} // fin de main
} // fin de la clase DibujarPoligonos
CONCLUSIN

Gracias a las diferentes tcnicas que vimos con respecto a los polgonos
nosotros podemos lograr a travs de estos que nuestros grficos adquieran
un mayor efecto de realismo. Y vemos que la iluminacin y sombreado
toman como caractersticas principales de la visibilidad, pero por otra
parte hay otras caractersticas que influyen como el acabado del objeto,
la transmisin de luz. Distintas combinaciones de estos factores pueden dar
lugar a una infinita variedad de distintos enfoques, que harn que nuestros
objetos se vean mejor.

REFERENCIA

http://es.scribd.com/doc/39390470/Computacion-Grafica-Iluminacion-y-
Sombreado

http://www.buenastareas.com/ensayos/Computacion-Grafica-Tecnicas-
De-Sombreado-e/1156313.html
http://graficacionedgar.blogspot.mx/p/4.html
http://graficos-12.blogspot.mx/2010/01/ejercicio-12-27-28.html

http://jugandoconjava.co/tutoriales/jFrames/dibujandoJFrame/dibujandoJ
Frame.html

Вам также может понравиться