tangente seno grafica funcion ejemplos coseno amplitud java math graph pi cosine

java - funcion - grafica de seno y coseno



Trazar las funciones seno y coseno (4)

Actualmente estoy teniendo algunos problemas con respecto a mi tarea.

Aquí está el ejercicio:

(Grafica las funciones seno y coseno) Escribe un programa que traza la función seno en rojo y la función coseno en azul.

sugerencia: El Unicode para Pi es / u03c0 . Para mostrar -2Pi, use g.drawString ("- 2 / u03c0", x, y). Para una función trigonométrica como sin (x), x está en radianes. Use el siguiente ciclo para agregar los puntos a un polígono p

for (int x = -170; x <= 170; x++) { p.addPoint(x + 200, 100 - (int)(50 * Math.sin((x / 100.0) * 2 * Math.PI)));

-2Pi está en ( 100, 100 ), el centro del eje está en ( 200, 100 ), y 2Pi está en ( 300, 100 ) Use el método drawPolyline en la clase Graphics para conectar los puntos.

De acuerdo, entonces la función de pecado que tengo es un poco diferente de la del ejercicio pero funciona así que no debería ser un problema. La función del coseno, por otro lado, tengo problemas para encontrar el código, así que no tengo eso en mi programa.

Lo que también tengo que hacer es colocar -Pi y Pi en el gráfico en sus lugares respetables.

Entonces, aquí está el código.

import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.Polygon; import javax.swing.JFrame; import javax.swing.JPanel; public class Exercise13_12 extends JFrame { public Exercise13_12() { setLayout(new BorderLayout()); add(new DrawSine(), BorderLayout.CENTER); } public static void main(String[] args) { Exercise13_12 frame = new Exercise13_12(); frame.setSize(400, 300); frame.setTitle("Exercise13_12"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setVisible(true); } class DrawSine extends JPanel { double f(double x) { return Math.sin(x); } double g(double y) { return Math.cos(y); } protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawLine(10, 100, 380, 100); g.drawLine(200, 30, 200, 190); g.drawLine(380, 100, 370, 90); g.drawLine(380, 100, 370, 110); g.drawLine(200, 30, 190, 40); g.drawLine(200, 30, 210, 40); g.drawString("X", 360, 80); g.drawString("Y", 220, 40); Polygon p = new Polygon(); for (int x = -170; x <= 170; x++) { p.addPoint(x + 200, 100 - (int) (50 * f((x / 100.0) * 2 * Math.PI))); } g.drawPolyline(p.xpoints, p.ypoints, p.npoints); g.drawString("-2/u03c0", 95, 115); g.drawString("2/u03c0", 305, 115); g.drawString("0", 200, 115); } } }

Si alguien tiene tiempo para ayudarme, estaría muy agradecido.


Echale un vistazo .....

public class GuiBasicstest { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic herei guiBasics gb = new guiBasics(); JFrame jf = new JFrame(); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setSize(500,500); jf.add(gb); jf.setVisible(true); } } ................................................................................ package guibasics; import java.awt.Graphics; import javax.swing.JPanel; /** * * @author ALI */ public class guiBasics extends JPanel{ //Graphics g = null; public void paintComponent(Graphics g){ //super.paintComponent(g); for(double i = 0; i<200;i++){ double y= Math.sin(i); draw(i,y,g); } } private void draw(double x , double y,Graphics g ){ double x1, y1; x+=10; y+=10; x*=10; y*=30; x1=x+1; y1=y+1; Double d = new Double(x); int a = d.intValue(); int b = (new Double(y)).intValue(); int c = (new Double(x1)).intValue(); int e = (new Double(y1)).intValue(); g.drawLine(a, b, c, e); } }


Está bien, ahora que el programa está completo terminé con esto .

import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.Polygon; import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; public class Exercise13_12 extends JFrame { public Exercise13_12() { setLayout(new BorderLayout()); add(new DrawSine(), BorderLayout.CENTER); } public static void main(String[] args) { Exercise13_12 frame = new Exercise13_12(); frame.setSize(400, 300); frame.setTitle("Exercise13_12"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setVisible(true); } class DrawSine extends JPanel { double f(double x) { return Math.sin(x); } double gCos(double y) { return Math.cos(y); } protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawLine(10, 100, 380, 100); g.drawLine(200, 30, 200, 190); g.drawLine(380, 100, 370, 90); g.drawLine(380, 100, 370, 110); g.drawLine(200, 30, 190, 40); g.drawLine(200, 30, 210, 40); g.drawString("X", 360, 80); g.drawString("Y", 220, 40); Polygon p = new Polygon(); Polygon p2 = new Polygon(); for (int x = -170; x <= 170; x++) { p.addPoint(x + 200, 100 - (int) (50 * f((x / 100.0) * 2 * Math.PI))); } for (int x = -170; x <= 170; x++) { p2.addPoint(x + 200, 100 - (int) (50 * gCos((x / 100.0) * 2 * Math.PI))); } g.setColor(Color.red); g.drawPolyline(p.xpoints, p.ypoints, p.npoints); g.drawString("-2/u03c0", 95, 115); g.drawString("-/u03c0", 147, 115); g.drawString("/u03c0", 253, 115); g.drawString("2/u03c0", 305, 115); g.drawString("0", 200, 115); g.setColor(Color.blue); g.drawPolyline(p2.xpoints, p2.ypoints, p2.npoints); } } }

Para cualquiera que pueda tener el mismo problema que yo más adelante.

Y gracias chicos por ayudarme, siempre agradecido.


Prueba esto:

import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.Polygon; import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; public class Exercise13_12 extends JFrame { public Exercise13_12() { setLayout(new BorderLayout()); add(new DrawSine(), BorderLayout.CENTER); } public static void main(String[] args) { Exercise13_12 frame = new Exercise13_12(); frame.setSize(400, 300); frame.setTitle("Exercise13_12"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setVisible(true); } class DrawSine extends JPanel { double f(double x) { return Math.sin(x); } double gCos(double y) { return Math.cos(y); } protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawLine(10, 100, 380, 100); g.drawLine(200, 30, 200, 190); g.drawLine(380, 100, 370, 90); g.drawLine(380, 100, 370, 110); g.drawLine(200, 30, 190, 40); g.drawLine(200, 30, 210, 40); g.drawString("X", 360, 80); g.drawString("Y", 220, 40); Polygon p = new Polygon(); Polygon p2 = new Polygon(); for (int x = -170; x <= 170; x++) { p.addPoint(x + 200, 100 - (int) (50 * f((x / 100.0) * 2 * Math.PI))); } for (int x = -170; x <= 170; x++) { p2.addPoint(x + 200, 100 - (int) (50 * gCos((x / 100.0) * 2 * Math.PI))); } g.setColor(Color.red); g.drawPolyline(p.xpoints, p.ypoints, p.npoints); g.drawString("-2/u03c0", 95, 115); g.drawString("2/u03c0", 305, 115); g.drawString("0", 200, 115); g.setColor(Color.blue); g.drawPolyline(p2.xpoints, p2.ypoints, p2.npoints); } } }

Básicamente es el mismo código, pero necesitas un nuevo polígono para dibujarlo. Y luego establezco el color usando la función setColor () de los gráficos.


Puedes agregar esto a tu método paintComponent :

//Draw pi and -pi g.drawString("-/u03c0", 147, 100); g.drawString("/u03c0", 253, 100); //Create a new polygon Polygon p2 = new Polygon(); //Add the points of the cosine for (int x = -170; x <= 170; x++) { p2.addPoint(x + 200, 100 - (int) (50 * g((x / 100.0) * 2 * Math.PI))); } //Draw the function g.drawPolyline(p2.xpoints, p2.ypoints, p2.npoints);

Con eso puedes tener los resultados que necesitas.