Java-Code?

Wie sieht die Methode Punktspiegelung und horizonalspieglung aus?

Implementieren Sie die Operation punktSpiegeln, die alle Punkte am Mittelpunkt des Bildes spiegelt.

Implementieren Sie in SWBild die Operation horizontalSpiegeln, die das Bild an der horizontalen Achse spiegelt.Für die Lösung zu dieser Operation ist kein zusätzliches Array-Objekt zugelassen, sie muss also „in place“ erfolgen

/**
 * SWBild ist eine Klasse, die Graustufenbilder repraesentiert und
 * manipuliert. Die Implementierung erfolgt durch ein einfaches
 * Bildformat: Die Bildpunkte werden in einem zweidimensionalen
 * Array von 'short'-Werten gehalten. Jeder Feldeintrag kann einen
 * Wert zwischen 0 und 255 annehmen. Andere Werte sind unzulaessig.
 * Der Wertebereich [0..255] repraesentiert den Graustufenbereich:
 * 0 fuer Schwarz, 255 fuer Weiss und dazwischenliegende Werte fuer
 * die Grauabstufungen.
 * 
 * Beispielmethode 'dunkler': Ein geladenes Bild kann um
 * ein gegebenes 'delta' abgedunkelt werden.
 * 
 */
class SWBild
{
    private int anzahlPiksel=0;


    // die Bilddaten dieses Bildes
    private short[][] _bilddaten;


    // die Breite dieses Bildes
    private int _breite;


    // die Hoehe dieses Bildes
    private int _hoehe;


    // Leinwand zur Anzeige
    private Leinwand _leinwand;


    /**
     * Initialisiert ein Bild mit einer Bilddatei. Der Benutzer kann interaktiv mit
     * Hilfe eines Dateidialogs die zu ladende Datei auswaehlen.
     */
    public SWBild()
    {
        _bilddaten = BildEinleser.liesBilddaten();
        if (_bilddaten != null)
        {
            aktualisiereBildgroesse(_bilddaten);
            erzeugeLeinwand();
        }
    }


    /**
     * Initialisiert ein Bild mit einer Bilddatei. Der Dateiname kann als absoluter
     * oder relativer Pfad uebergeben werden.
     * 
     * @param bilddateiName
     *            der Name der Bilddatei
     */
    public SWBild(String bilddateiName)
    {
        _bilddaten = BildEinleser.liesBilddaten(bilddateiName);
        aktualisiereBildgroesse(_bilddaten);
        erzeugeLeinwand();
    }

/**
     * Erzeuge bei diesem Bild einen Spot mit Radius r, Mittelpunkt x0,y0 und
     * Beleuchtungsintensitaet i. Ausserhalb von r nimmt die Ausleuchtung linear ab.
     * Wie im wirklichen Leben...
     * 
     * @param xo
     *            x-Koordinate des Mittelpunktes
     * @param yo
     *            y-Koordinate des Mittelpunktes
     * @param r
     *            Radius
     * @param i
     *            Beleuchtungsintesitaet
     */
    public void spot(int x0, int y0, int r, short i)
}


Mathematik, programmieren, Java, Informatik, Python, Softwareentwicklung, Wirtschaftsinformatik, technische informatik, angewandte Informatik
Könnt ihr mir bei dieser Java-Aufgabe helfen?
Einige Methoden werden in allen Implementierungen gleich sein. Erstellen Sie eine abstrakte Klasse BasisRennbahn, die diese Methoden enthält und leiten Sie dann von dieser Klasse ab. Welche Methoden können Sie ohne Probleme in die Basisklasse verschieben? Warum gibt es bei manchen Methoden Probleme?
public class Rennauto {
    private final String name;
    private final String typ;
    private final int max;
    private int strecke;    
 
     * @param name Name der Fahrerin oder des Fahrers
     * @param typ Fahrzeugmarke und Typ
     * @param max maximale Geschwindigkeit
  
    public Rennauto(String name, String typ, int max) {
        this.name = name;
        this.typ = typ;
        this.max = max;
    }
    
     * Fährt mit zufälliger Geschwindigkeit eine Strecke.
    
    public void fahre() {
        strecke += Math.random() * max;
    }    

     * Liefert die aktuelle Position des Rennautos.
    
    public int getStrecke() {
        return strecke;
    }


    @Override
    public String toString() {
        return name + " in " + typ + " (" + strecke + ")";
    }
  public interface Rennbahn {

     * Setzt die Laenge der Rennbahn. Typische Werte werden zwischen 100 und 1000 liegen.
   
  void setzeLaenge(int laenge);


     * Setzt ein Rennauto auf eine Spur, falls möglich
     * @param auto das Auto, das auf die Rennbahn gesetzt wird.  Dieses darf nicht null sein!
     * @return true, falls das Auto auf die Bahn gesetzt werden konnte. Falsch, wenn das Rennauto bereits auf der Fahrbahn ist oder keine Spur (je nach
     *Implementierung unterschiedlich viele) mehr frei ist.

    boolean setzeAufSpur(Rennauto auto);


     * Simuliert einen Zeitabschnitt, i.A. wird hier einfach nur
     * {@link Rennauto#fahre()} für alle am Rennen beteiligten Autos aufgerufen.
    
    void simuliereZeitabschnitt();


     * Liefert den Sieger. Falls mehrere Autos im Ziel sind, gewinnt das Auto, das am weitesten gefahren ist.
     * Wenn Autos exakt gleich weit gefahren sind, gewinnt eines von beiden (welches ist nicht genauer spezifiziert).
     * @return Sieger oder null, falls es keinen Sieger gibt.
  
    Rennauto liefereSieger();


         * Führt das Rennen mittels {@link #simuliereZeitabschnitt()} und
     * {@link #liefereSieger()} durch. Die Methode gibt nichts zurück, der Sieger kann über {@link #liefereSieger()} ermittelt werden.
     * @throws IllegalStateException, falls die Länge nicht gesetzt wurde oder keine
     * Autos auf der Rennbahn stehen.
   
 void rennenDurchfuehren();


     * Entfernt ein Rennauto von der Rennbahn und gibt die Spur wieder frei. 
     * @param auto das zu entfernende Rennauto
    
    void entferne(Rennauto auto);
    
  
     * Prüft, ob wenigstens ein Auto auf der Rennbahn steht.
     * @return false, falls wenigstens ein Auto auf der Rennbahn steht, sonst true
    
    boolean istLeer();
programmieren, Java, Informatik, Programmiersprache, Softwareentwicklung, Wirtschaftsinformatik, Wirtschaftsmathematik, Wirtschaftswissenschaft, technische informatik, angewandte Informatik

Meistgelesene Fragen zum Thema Angewandte Informatik