bitte bitte hilfe zu gdv.java
Results 1 to 8 of 8
  1. #1

    Title
    Baccalaureus
    Join Date
    Feb 2002
    Posts
    702
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Unhappy bitte bitte hilfe zu gdv.java

    ich weiß, ich bin ein bißerl spät dran, aber ich muss das programm am mittwoch abgeben....
    es geht um das programm punkte spiegeln und drehen.

    in meiner spez steht: man soll max. vier operationen einlesen oder nach 0 aufhören
    d.h. eingegeben wird so: 1 2 SPX 0
    wie schaut das aber mit 4 Operationen aus?? ich kann mir nix drunter vorstellen...


    ahhh, das ist so ein schas!!!! ich bin schon fix und fertig....und dabei ist das noch das leichte bsp....

  2. #2
    DoomedOne
    wenn du die genaue spezifikation posten würdest könnten wir sicher besser helfen...

  3. #3

    Title
    Baccalaureus
    Join Date
    Feb 2002
    Posts
    702
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Lesen Sie die x- und y-Koordinate eines Punktes ein. Danach werden Operationen eingelesen, die wie folgt aussehen können:
    'SPX' oder 'spx' bezeichnen eine Spiegelung an der x-Achse.
    'SPY' oder 'spy' bezeichnen eine Spiegelung an der y-Achse.
    'D' oder 'd' bezeichnen eine Drehung, wobei anschließend der Winkel eingegeben wird.
    Man kann in der graphischen Datenverarbeitung Punkte mit Hilfe von Transformationsmatrizen spiegeln und drehen.
    Seien x und y die Koordinaten des Punktes.
    Man erhält die Koordinaten des gesuchten Punktes, indem man diesen (als Vektor angeschrieben) mit der Transformationsmatrix multipliziert.

    Diese Transformationsmatrizen sind für 3-dimensionale Koordinatensysteme ausgelegt; die dritte Komponente des Vektors ist für Sie irrelevant.

    Drehen des Vektors um den Winkel :


    Spiegelung an der x-Achse: (Genauer: Spiegelung an der xz-Ebene)


    Spiegelung an der y-Achse: (Genauer: Spiegelung an der yz-Ebene)


    Da die Matrizenmultiplikation assoziativ (aber nicht kommutativ!) ist, muß man nicht jede Transformation auf den Punkt ausführen, sondern kann die Matrizen multiplizieren und den Punktvektor mit dem Produkt multiplizieren.

    Eingabedaten:
    Lesen Sie x und y als INTEGER-Zahlen ein. Diese dürfen nicht kleiner als -50 und nicht größer als 50 sein.
    Danach lesen Sie die Operationen als Strings ein, wobei nur 'spx', 'SPX', 'spy', 'SPY', 'd', 'D' und '0' zulässig sind.

    Wenn die Operation 'D' ist, so wird der Drehungswinkel als INTEGER-Zahl eingelesen.

    Die Operation '0' beendet die Eingabe vorzeitig; ansonsten ist der Datensatz nach 4 Operationen beendet (keine weitere Operation einlesen!).

    Ausgabedaten:
    Bei korrekten Eingabedaten soll Ihr Programm die Koordinaten des ermittelten Punktes in der Reihenfolge x,y als Float-Zahlen mit 3 Nachkommastellen und durch ein Leerzeichen getrennt ausgeben, anschließend einen Zeilenvorschub.
    Fehlerbehandlung:
    Sämtliche Eingabedatensätze sind immer bis zum definierten Endezeichen einzulesen (bis zur Operation 0 oder 4 Operationen). Generell wird bei fehlerhaften Eingabedatensätzen nur eine einzige Fehlermeldung erzeugt, weitere Berechnungen werden nicht mehr durchgeführt.
    Enthält der Eingabedatensatz einen ungültigen Datentyp, so soll einmal das Zeichen "?", gefolgt von einem Zeilenvorschub, ausgegeben werden.

    Waren die Datentypen bei allen Eingaben richtig, die eingegebenen Daten dann aber inhaltlich nicht korrekt, so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.


    Beispiele:
    Eingabedaten
    1 2 SPX 0

    --------------------------------------------------------------------------------
    3 4 SPY 0

    --------------------------------------------------------------------------------

    Ausgabedaten
    1.000 -2.000

    --------------------------------------------------------------------------------
    -3.000 4.000

    --------------------------------------------------------------------------------

    ich glaub ich bin echt zu doof für dieses bsp....dann halt 0 Pkte...*ärger* ich check da echt nix...

  4. #4
    DoomedOne
    stimmt das bsp ist wirklich net sehr angenehm. Und was gemeit ist wenn die Operation 0 ist kann man auch nur erraten.
    Ist das eine falsche eingabe?
    muss man nur den eingegeben pkt wieder ausgeben?
    und für was brauch ich bei einer spiegelung um die X oder Y Achse eine 4. eingabe?

    Zumindest wenn sie die einfache spiegelung wollen ist es leicht: Musst ja nur die X bzw die Y koordinate *-1 nehmen.

    Bei einer drehung is das ein bisserl schwerer, neue pkt:
    x = altesX * cos(Winkel) - altesY * sin(Winkel)
    y = altesX * sin(Winke) + altesY * cos(Winkel)

    hoffe das stimmt wirklich so, du solltest aber lieber ein anderes Bsp nehmen, dieses ist doch zu ungenau angegeben, eben typisch Eprog.

  5. #5

    Title
    Baccalaureus
    Join Date
    Feb 2002
    Posts
    702
    Thanks
    0
    Thanked 0 Times in 0 Posts
    danke dass du dir gedanken gemacht hast.
    ich kenn mich zwar noch immer nicht besser aus... aber mein kopf raucht...
    die anderen bsp. sind auch nicht besser, das ist eh schon das leichte...
    konvexe huelle und das gauss bsp. sind noch depperter....
    ach wenn doch schon ferien wären und ich ein pos. zeugnis hätte....

  6. #6
    DoomedOne
    hast wirklich die [Beep]karte gezogen, bin ich froh das bei mir immer nur 1 bsp deppert war
    naja dafür hats bei mir bei info + gesellschaft net gereicht *grr

    ich würd halt versuchen bei einem bsp so viel wie möglich zu machen, wenn 1 fall net eingebaut ist is das noch immer besser als gar nix. Beim einfachen Bsp kannst wenigstens die Spiegelung einbauen, das sind ja nur 3-4 zeilen code. Zusammen mit den valid Checks kommst sicher auf min 10 pkte und das is noch immer besser als 0

  7. #7

    Title
    Baccalaureus
    Join Date
    Feb 2002
    Posts
    702
    Thanks
    0
    Thanked 0 Times in 0 Posts
    tja, du kannst mich gern auslachen
    aber sogar an diesen "einfachen" zeilen haperts....
    naja...
    i hate eprog...

  8. #8
    DoomedOne
    hm, wenn das so ist warum fängst du erst so spät damit an?
    Aber wenn du weißt wie man so ne spiegelung am papier macht dann kannst es auch umsetzen.
    Wenn nicht frag ich mich wie du die 1.Runde gemacht hast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •