Subato

Resource Files

Polynomgraphen

In dieser Aufgabe wird eine Appliakation entwickelt, mit deren Hilfe Graphen von Polynomen und ihren Ableitungsfunktionen erstellt werden. Die Graphen lassen sich sowohl am Bildschirm anzeigen, als auch in Dateien schreiben.

Arbeiten Sie den Lehrbrief zu dieser Aufgabe schrittweise durch und testen sie dabei stets interaktiv Ihre Fortschritte in der JShell.

Die in dieser Aufgabe erzeugten Bilddateien sind gebündelt in der nächsten Aufgabe als eine PDF Datei hochzuladen.


import javax.swing.*; import java.awt.*; import java.awt.image.*; import java.io.*; import javax.imageio.ImageIO; public interface Poly{ abstract class PaintBoard extends JPanel { int width; int height; PaintBoard(int width, int height){ this.width= width; this.height=height; } abstract void paintWith(Graphics2D g); public void showMe(){ var f = new JFrame(); f.add(this); f.setResizable(false); f.pack(); f.setVisible(true); } public void saveToPNG(String fileName){ var img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); var g2d = img.createGraphics(); paintComponent(g2d); g2d.dispose(); var file = new File(fileName); try{ImageIO.write(img, "png", file);}catch(Exception e){} } @Override public Dimension getPreferredSize(){ return new Dimension(width,height); } @Override protected void paintComponent(Graphics g){ setBackground(Color.WHITE); super.paintComponent(g); paintWith((Graphics2D)g); } } class PaintABit extends PaintBoard{ PaintABit(){ super(400,400); } @Override void paintWith(Graphics2D g){ g.setColor(Color.RED); g.fillOval(100,100,50,60); g.setColor(Color.BLUE); g.fillOval(200,150,70,30); g.setColor(Color.GREEN); g.drawLine(0,0,width,height/2); g.setColor(Color.BLACK); g.setFont(new Font("Helvetica", Font.BOLD, 25)); g.drawString("Hello World!",100,300); } } record Monom(double b, int e){ double eval(double x){ return 0; /*TODO*/ } Monom derivation(){ return null; /*TODO*/ } } record Polynom(Monom... ms){ double eval(double x){ return 0.0; /*TODO*/ } Polynom derivation(){ return null; /*TODO*/ } } class PolyBoard extends PaintBoard{ Polynom poly; double minX; double maxX; double minY; double maxY; double xRes; double yRes; PolyBoard( int width, int height , double minX, double maxX, double minY, double maxY , Polynom poly){ super(width, height); /*TODO*/ } double pxToX(int px){ return 0; /*TODO*/ } double pxToY(int py){ return 0; /*TODO*/ } int yToPx(double y){ return 0;/*TODO*/ } int xToPx(double x){ return 0;/*TODO*/ } @Override void paintWith(Graphics2D g){ g.setColor(Color.BLACK); paintCoordinates(g); g.setColor(Color.BLUE); paintGraph(poly,g); var poly1 = poly.derivation(); g.setColor(Color.RED); paintGraph(poly1,g); var poly2 = poly1.derivation(); g.setColor(Color.GREEN); paintGraph(poly2,g); } void paintCoordinates(Graphics2D g){ /*TODO*/ } void paintGraph(Polynom p, Graphics2D g){ /*TODO*/ } } }
java
You are not logged in and therefore you cannot submit a solution.