Problemita con gráficas trigonométricas II
Publicado por Alan Garcia (11 intervenciones) el 01/08/2010 11:17:03
public static void main(String args[]) {
/* JOptionPane.showMessageDialog(null, "El programa muestra el " +
"gráfico de las principales funciones trigonométricas \n",
"Objetivo", JOptionPane.INFORMATION_MESSAGE); */
PRUEBA aplicacion = new PRUEBA();
aplicacion.setBackground(Color.WHITE);
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON _CLOSE);
aplicacion.setLocation(150, 150);
aplicacion.setVisible(true);
} // cierre del método main().
void SENO(Graphics g) {
int mm, N;
double inicio = 0, fin = 5, incremento = 0.01;
N = (int)((fin - inicio)/incremento) + 1; // determina el número de puntos.
double xx[] = new double[N];
double yy[] = new double[N];
for(int i = 0; i < N; i++) { // crea las parejas de puntos.
xx[i] = inicio + incremento * i;
yy[i] = Math.sin(3.0 * xx[i]) ;
}
Datos(xx,yy); // genera las parejas de puntos y la curva a ser trazada.
EjesCoordenados(g);
if(inser > numser) mm = numser;
else mm = inser;
for(int j = 0; j <= mm; j++) {
// pausa();
COLOR(g);
for(int i = 0; i < n - 1; i++)
g.drawLine(50 + x[j][i], MaxY - y[j][i], 50 + x[j][i+1],
MaxY - y[j][i+1]);
}
} // cierre del método SENO().
void COSENO(Graphics g) {
int mm, N;
double inicio = 0, fin = 5, incremento = 0.01;
N = (int)((fin - inicio)/incremento) + 1; // determina el número de puntos.
double xx[] = new double[N];
double yy[] = new double[N];
for(int i = 0; i < N; i++) { // crea las parejas de puntos.
xx[i] = inicio + incremento * i;
yy[i] = Math.cos(3.0 * xx[i]) ;
}
// g.clearRect(0, 0, 460, 500);
Datos(xx,yy); // genera las parejas de puntos y la curva a ser trazada.
EjesCoordenados(g);
if(inser > numser) mm = numser;
else mm = inser;
for(int j = 0; j <= mm; j++) {
COLOR(g);
for(int i = 0; i < n - 1; i++)
g.drawLine(50 + x[j][i], MaxY - y[j][i], 50 + x[j][i+1],
MaxY - y[j][i+1]);
}
} // cierre del método COSENO().
void TANGENTE(Graphics g) {
int mm, N;
double inicio = 0, fin = 5, incremento = 0.01;
N = (int)((fin - inicio)/incremento) + 1; // determina el número de puntos.
double xx[] = new double[N];
double yy[] = new double[N];
for(int i = 0; i < N; i++) { // crea las parejas de puntos.
xx[i] = inicio + incremento * i;
yy[i] = Math.tan(xx[i]);
}
Datos(xx,yy); // genera las parejas de puntos y la curva a ser trazada.
EjesCoordenados(g);
if(inser > numser) mm = numser;
else mm = inser;
for(int j = 0; j <= mm; j++) { // realiza el trazado de la curva.
COLOR(g);
for(int i = 0; i < n - 1; i++)
g.drawLine(50 + x[j][i], MaxY - y[j][i], 50 + x[j][i+1],
MaxY - y[j][i+1]);
}
} // cierre del método TANGENTE().
void SECANTE(Graphics g) {
int mm, N;
double inicio = 0, fin = 5, incremento = 0.01;
N = (int)((fin - inicio)/incremento) + 1; // determina el número de puntos.
double xx[] = new double[N];
double yy[] = new double[N];
for(int i = 0; i < N; i++) { // crea las parejas de puntos.
xx[i] = inicio + incremento * i;
yy[i] = 1.0/Math.cos(3.0 * xx[i]);
}
Datos(xx,yy); // genera las parejas de puntos y la curva a ser trazada.
EjesCoordenados(g);
if(inser > numser) mm = numser;
else mm = inser;
for(int j = 0; j <= mm; j++) { // realiza el trazado de la curva.
COLOR(g);
for(int i = 0; i < n - 1; i++)
g.drawLine(50 + x[j][i], MaxY - y[j][i], 50 + x[j][i+1],
MaxY - y[j][i+1]);
}
} // cierre del método SECANTE().
void COSECANTE(Graphics g) {
int mm, N;
double inicio = 0, fin = 5, incremento = 0.01;
N = (int)((fin - inicio)/incremento) + 1; // determina el número de puntos.
double xx[] = new double[N];
double yy[] = new double[N];
for(int i = 0; i < N; i++) { // crea las parejas de puntos.
xx[i] = inicio + incremento * i;
yy[i] = 1.0/Math.sin(3.0 * xx[i]);
}
Datos(xx,yy); // genera las parejas de puntos y la curva a ser trazada.
EjesCoordenados(g);
if(inser > numser) mm = numser;
else mm = inser;
for(int j = 0; j <= mm; j++) { // realiza el trazado de la curva.
COLOR(g);
for(int i = 0; i < n - 1; i++)
g.drawLine(50 + x[j][i], MaxY - y[j][i], 50 + x[j][i+1],
MaxY - y[j][i+1]);
}
} // cierre del método COSECANTE().
void COTANGENTE(Graphics g) {
int mm, N;
double inicio = 0, fin = 5, incremento = 0.01;
N = (int)((fin - inicio)/incremento) + 1; // determina el número de puntos.
double xx[] = new double[N];
double yy[] = new double[N];
for(int i = 0; i < N; i++) { // crea las parejas de puntos.
xx[i] = inicio + incremento * i;
yy[i] = 1.0/Math.tan(xx[i]);
}
Datos(xx,yy); // genera las parejas de puntos y la curva a ser trazada.
EjesCoordenados(g);
if(inser > numser) mm = numser;
else mm = inser;
for(int j = 0; j <= mm; j++) { // realiza el trazado de la curva.
COLOR(g);
for(int i = 0; i < n - 1; i++)
g.drawLine(50 + x[j][i], MaxY - y[j][i], 50 + x[j][i+1],
MaxY - y[j][i+1]);
}
} // cierre del método COTANGENTE().
void EjesCoordenados(Graphics g) {
g.setColor(Color.black);
g.drawLine(pos_ejex, 0, pos_ejex, 500); // dibuja semieje x.
g.drawLine(0, pos_ejey, 500, pos_ejey); // dibuja semieje y.
for(int i = 0; i < numd - 2; i++) { /* coloca los valores de los ejes
* coordenados. */
g.drawString(Double.toString(etiqx[i]), 50 + posx[i], 20);
g.drawString(Double.toString(etiqx[i]), 50 + posx[i], pos_ejey + 20);
g.drawLine(50 + posx[i], pos_ejey - 5, 50 + posx[i], pos_ejey + 5);
g.drawString(Double.toString(etiqy[i]), pos_ejex - 20, MaxY - posy[i]);
g.drawLine(pos_ejex - 5, MaxY - posy[i], pos_ejex + 5, MaxY - posy[i]);
}
} // cierre del método EjesCoordenados ();
static void pausa() {
try {
Thread.sleep(1500); // Pausa en milisegundos.
}
catch(InterruptedException exc) {}
return;
} // cierre del método pausa.
void COLOR(Graphics g) {
Random rnd = new Random(); // generador de números rnd
g.setColor(new Color(rnd.nextInt(255), rnd.nextInt(255), rnd.nextInt(255)));
return;
}
void continuacion(Graphics g) {
g.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN,14));
g.drawString("¿Deseas seguir ejecutando?", 570, 400);
Si.addActionListener(this);
No.addActionListener(this);
add(Si);
Si.setBounds(new Rectangle(600, 380, 50, 30));
add(No);
No.setBounds(new Rectangle(670, 380, 50, 30));
}
void salida() {
JOptionPane.showMessageDialog(null, "Ha sido un placer haber " +
"trabajado con usted. Hasta luego...", "Salida",
JOptionPane.INFORMATION_MESSAGE);
return;
} // cierre del método prueba.
} // cierre de la clase PRUEBA.
************************************************** *************
Me gustaría que me ayudaran a resolver esta dificultad, es decir, en que al decidir continuar con la aplicación, ésta sólo presente la gráfica elegida y no las anteriores. Además, de corregir las gráficas de las funciones más complicaditas (las cuatro últimas).
Saludos a todos y les agredezco de antemano su valiosa ayuda a mi problemita.
/* JOptionPane.showMessageDialog(null, "El programa muestra el " +
"gráfico de las principales funciones trigonométricas \n",
"Objetivo", JOptionPane.INFORMATION_MESSAGE); */
PRUEBA aplicacion = new PRUEBA();
aplicacion.setBackground(Color.WHITE);
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON _CLOSE);
aplicacion.setLocation(150, 150);
aplicacion.setVisible(true);
} // cierre del método main().
void SENO(Graphics g) {
int mm, N;
double inicio = 0, fin = 5, incremento = 0.01;
N = (int)((fin - inicio)/incremento) + 1; // determina el número de puntos.
double xx[] = new double[N];
double yy[] = new double[N];
for(int i = 0; i < N; i++) { // crea las parejas de puntos.
xx[i] = inicio + incremento * i;
yy[i] = Math.sin(3.0 * xx[i]) ;
}
Datos(xx,yy); // genera las parejas de puntos y la curva a ser trazada.
EjesCoordenados(g);
if(inser > numser) mm = numser;
else mm = inser;
for(int j = 0; j <= mm; j++) {
// pausa();
COLOR(g);
for(int i = 0; i < n - 1; i++)
g.drawLine(50 + x[j][i], MaxY - y[j][i], 50 + x[j][i+1],
MaxY - y[j][i+1]);
}
} // cierre del método SENO().
void COSENO(Graphics g) {
int mm, N;
double inicio = 0, fin = 5, incremento = 0.01;
N = (int)((fin - inicio)/incremento) + 1; // determina el número de puntos.
double xx[] = new double[N];
double yy[] = new double[N];
for(int i = 0; i < N; i++) { // crea las parejas de puntos.
xx[i] = inicio + incremento * i;
yy[i] = Math.cos(3.0 * xx[i]) ;
}
// g.clearRect(0, 0, 460, 500);
Datos(xx,yy); // genera las parejas de puntos y la curva a ser trazada.
EjesCoordenados(g);
if(inser > numser) mm = numser;
else mm = inser;
for(int j = 0; j <= mm; j++) {
COLOR(g);
for(int i = 0; i < n - 1; i++)
g.drawLine(50 + x[j][i], MaxY - y[j][i], 50 + x[j][i+1],
MaxY - y[j][i+1]);
}
} // cierre del método COSENO().
void TANGENTE(Graphics g) {
int mm, N;
double inicio = 0, fin = 5, incremento = 0.01;
N = (int)((fin - inicio)/incremento) + 1; // determina el número de puntos.
double xx[] = new double[N];
double yy[] = new double[N];
for(int i = 0; i < N; i++) { // crea las parejas de puntos.
xx[i] = inicio + incremento * i;
yy[i] = Math.tan(xx[i]);
}
Datos(xx,yy); // genera las parejas de puntos y la curva a ser trazada.
EjesCoordenados(g);
if(inser > numser) mm = numser;
else mm = inser;
for(int j = 0; j <= mm; j++) { // realiza el trazado de la curva.
COLOR(g);
for(int i = 0; i < n - 1; i++)
g.drawLine(50 + x[j][i], MaxY - y[j][i], 50 + x[j][i+1],
MaxY - y[j][i+1]);
}
} // cierre del método TANGENTE().
void SECANTE(Graphics g) {
int mm, N;
double inicio = 0, fin = 5, incremento = 0.01;
N = (int)((fin - inicio)/incremento) + 1; // determina el número de puntos.
double xx[] = new double[N];
double yy[] = new double[N];
for(int i = 0; i < N; i++) { // crea las parejas de puntos.
xx[i] = inicio + incremento * i;
yy[i] = 1.0/Math.cos(3.0 * xx[i]);
}
Datos(xx,yy); // genera las parejas de puntos y la curva a ser trazada.
EjesCoordenados(g);
if(inser > numser) mm = numser;
else mm = inser;
for(int j = 0; j <= mm; j++) { // realiza el trazado de la curva.
COLOR(g);
for(int i = 0; i < n - 1; i++)
g.drawLine(50 + x[j][i], MaxY - y[j][i], 50 + x[j][i+1],
MaxY - y[j][i+1]);
}
} // cierre del método SECANTE().
void COSECANTE(Graphics g) {
int mm, N;
double inicio = 0, fin = 5, incremento = 0.01;
N = (int)((fin - inicio)/incremento) + 1; // determina el número de puntos.
double xx[] = new double[N];
double yy[] = new double[N];
for(int i = 0; i < N; i++) { // crea las parejas de puntos.
xx[i] = inicio + incremento * i;
yy[i] = 1.0/Math.sin(3.0 * xx[i]);
}
Datos(xx,yy); // genera las parejas de puntos y la curva a ser trazada.
EjesCoordenados(g);
if(inser > numser) mm = numser;
else mm = inser;
for(int j = 0; j <= mm; j++) { // realiza el trazado de la curva.
COLOR(g);
for(int i = 0; i < n - 1; i++)
g.drawLine(50 + x[j][i], MaxY - y[j][i], 50 + x[j][i+1],
MaxY - y[j][i+1]);
}
} // cierre del método COSECANTE().
void COTANGENTE(Graphics g) {
int mm, N;
double inicio = 0, fin = 5, incremento = 0.01;
N = (int)((fin - inicio)/incremento) + 1; // determina el número de puntos.
double xx[] = new double[N];
double yy[] = new double[N];
for(int i = 0; i < N; i++) { // crea las parejas de puntos.
xx[i] = inicio + incremento * i;
yy[i] = 1.0/Math.tan(xx[i]);
}
Datos(xx,yy); // genera las parejas de puntos y la curva a ser trazada.
EjesCoordenados(g);
if(inser > numser) mm = numser;
else mm = inser;
for(int j = 0; j <= mm; j++) { // realiza el trazado de la curva.
COLOR(g);
for(int i = 0; i < n - 1; i++)
g.drawLine(50 + x[j][i], MaxY - y[j][i], 50 + x[j][i+1],
MaxY - y[j][i+1]);
}
} // cierre del método COTANGENTE().
void EjesCoordenados(Graphics g) {
g.setColor(Color.black);
g.drawLine(pos_ejex, 0, pos_ejex, 500); // dibuja semieje x.
g.drawLine(0, pos_ejey, 500, pos_ejey); // dibuja semieje y.
for(int i = 0; i < numd - 2; i++) { /* coloca los valores de los ejes
* coordenados. */
g.drawString(Double.toString(etiqx[i]), 50 + posx[i], 20);
g.drawString(Double.toString(etiqx[i]), 50 + posx[i], pos_ejey + 20);
g.drawLine(50 + posx[i], pos_ejey - 5, 50 + posx[i], pos_ejey + 5);
g.drawString(Double.toString(etiqy[i]), pos_ejex - 20, MaxY - posy[i]);
g.drawLine(pos_ejex - 5, MaxY - posy[i], pos_ejex + 5, MaxY - posy[i]);
}
} // cierre del método EjesCoordenados ();
static void pausa() {
try {
Thread.sleep(1500); // Pausa en milisegundos.
}
catch(InterruptedException exc) {}
return;
} // cierre del método pausa.
void COLOR(Graphics g) {
Random rnd = new Random(); // generador de números rnd
g.setColor(new Color(rnd.nextInt(255), rnd.nextInt(255), rnd.nextInt(255)));
return;
}
void continuacion(Graphics g) {
g.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN,14));
g.drawString("¿Deseas seguir ejecutando?", 570, 400);
Si.addActionListener(this);
No.addActionListener(this);
add(Si);
Si.setBounds(new Rectangle(600, 380, 50, 30));
add(No);
No.setBounds(new Rectangle(670, 380, 50, 30));
}
void salida() {
JOptionPane.showMessageDialog(null, "Ha sido un placer haber " +
"trabajado con usted. Hasta luego...", "Salida",
JOptionPane.INFORMATION_MESSAGE);
return;
} // cierre del método prueba.
} // cierre de la clase PRUEBA.
************************************************** *************
Me gustaría que me ayudaran a resolver esta dificultad, es decir, en que al decidir continuar con la aplicación, ésta sólo presente la gráfica elegida y no las anteriores. Además, de corregir las gráficas de las funciones más complicaditas (las cuatro últimas).
Saludos a todos y les agredezco de antemano su valiosa ayuda a mi problemita.
Valora esta pregunta


0