Trabajo Colaborativo 2 Computacion Garfica
Enviado por rony26 • 13 de Diciembre de 2011 • 4.095 Palabras (17 Páginas) • 695 Visitas
INTRODUCCIÓN
En el siguiente trabajo colaborativo pretendemos presentar una serie de concepto y definiciones propios del estudio de los Algoritmos, su análisis y diseño.
En el mismo podremos encontrar los conceptos de algoritmo y algunos de sus componentes, análisis y diseño. También veremos los diferentes tipos de formas y tamaños o medidas en que se pueden almacenar y representar los datos y estructuras en un algoritmo o programa.
OBJETIVOS
• Familiarizar al estudiante con los algoritmos básicos de la Computación Gráfica.
• Introducir al estudiante en los principales algoritmos utilizados en Computación
• Realización de ejercicios en JAVA.
Actividad 1:
Realice un programa en el lenguaje de programación java que capture los datos ingresados por el usuario y guarde en un vector (de mínimo seis elementos) las frecuencias encontradas en el análisis de un determinado fenómeno (ej. Calificaciones obtenidas el periodo académico anterior) y permita construir un gráfico de torta donde se muestren los porcentajes de cada una de las frecuencias y un histograma de frecuencias (gráfico de barras) donde se muestren los valores de cada una de las frecuencias.
/**
* @(#)Notas.java
*
*
* @author
* @version 1.00 2011/10/23
*/
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
//<applet width="150" height="200" code="AppletCirculos"></applet>
public class Colaborativo2 extends Applet implements ActionListener {
Label l1;
Button b1,b2,b3;
TextField t1;
boolean dibuja=false;
int maxx[]= new int[500];
int minx[] = new int[500];
int ymin, ymax;
/*int frecuencias[] = new int[6];
frecuencias[]=0*/
int[] frecuencias={0,0,0,0,0,0};
Color[] colores ={Color.yellow,Color.green,Color.black,Color.magenta,Color.blue,Color.cyan};
//colores[0]=Color.yellow;
public Colaborativo2() {
l1= new Label("Ingrese numeros enteros entre 0 y 5:");
t1= new TextField(8);
b1= new Button("Ingresar Valor");
b2= new Button("Construir grafico torta");
b3= new Button("Construir histograma");
add(l1);
add(t1);
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
/*for(int i=0;i<6;i++)
{
frecuencias[i]=0;
}*/
}
public void actionPerformed(ActionEvent ae) {
Graphics g= getGraphics();
if(ae.getSource()== b1)
{
int valor=Integer.parseInt(t1.getText());
if(valor>=0 && valor<=5)
{
frecuencias[valor]++;
/*String texto="Nueva frecuencia"+valor+" : "+frecuencias[valor];
g.drawString(texto,30,140);*/
}
else
{
//opcional
}
}
if(ae.getSource()== b2)
{
int sumaFrec=0;
for(int i=0;i<=5;i++)
{
sumaFrec=sumaFrec+frecuencias[i];
}
//dibujarCirculo(200,200,100,Color.red, g);
dibujarTorta(200,200,100,Color.green,g,sumaFrec);
}
if(ae.getSource()== b3)
dibuja=false;
//repaint();
}
public void rellenar(Graphics g, Color color){
//g.setColor(Color.blue);
//String texto="yminimo para relleno"+ymin;
/* String texto="xminimo para relleno"+minx[210];
g.drawString(texto,30,140);
//texto="ymaximo para relleno"+ymax;
texto="xmaximo para relleno"+maxx[210];
g.drawString(texto,30,160);
*/
for(int i=ymin; i<=ymax; i++)
//for(int i=202; i<=290; i++)
{
dibujarLinea(minx[i], i, maxx[i], i,color,g,1,0);
}
}
//public void recorrerLinea(int x0, int y0, int x1, int y1, Color color, Graphics g, int tipo, float angulo)
public void recorrerLinea(int x0, int y0, int x1, int y1, double angulo)
{
int x,y,dx,dy,e,ix,iy;
dx = (x1-x0);
dy = (y1-y0);
ix = 2*dx;
iy = 2*dy;
//if(tipo==1){
if((angulo>=0&&angulo<=0.785) || (angulo>=3.14&&angulo<=3.925)){
y = y0;
e = iy-dx;
for (x=x0; x<=x1; x++)
{
if(x>maxx[y]) maxx[y]=x;
if(x<minx[y]) minx[y]=x;
if(ymin>y) ymin=y;
if(ymax<y) ymax=y;
//g.setColor(color);
//g.drawRect(x,y,0,0);
e=e+iy;
if (e>0)
{
y=y+1;
e=e-ix;
}
}
}
//else if(tipo==2){
else if((angulo>=1.57&&angulo<=2.355) || (angulo>=4.71&&angulo<=5.495)){
x = x0;
e = iy-dx;
for (y=y0; y<=y1; y++)
{
if(x>maxx[y]) maxx[y]=x;
if(x<minx[y]) minx[y]=x;
if(ymin>y) ymin=y;
if(ymax<y) ymax=y;
//g.setColor(color);
//g.drawRect(x,y,0,0);
e=e-ix;
if (e>0)
{
x=x-1;
e=e-iy;
}
}
}
//else if(tipo==3){
else if((angulo>0.785&&angulo<1.57) || (angulo>3.925&&angulo<4.71)){
x = x0;
e = iy-dx;
for (y=y0; y<=y1; y++)
{
if(x>maxx[y]) maxx[y]=x;
if(x<minx[y]) minx[y]=x;
if(ymin>y) ymin=y;
if(ymax<y) ymax=y;
//g.setColor(color);
...