# Bild mit Zoom Funktion



## Nix blickerin (24. Jan 2006)

Hallo Freunde,

ich habe ein unlösbares Problem! Und zwar soll ich ne Hausarbeit schreiben in Java. Dumm, dass mein Prof. es selber nicht kann.

Die Aufg. lautet:
Lesen Sie ein Pixelbild ein und entwickeln Sie eine Zoom-Funktion mit einem Menüpunkt Reset, der das ursprüngliche Bild in seiner gesamten Größe darstellt, sowie Zoom in und Zoom out. Zoom out halbiert jeweils die Bildgröße, zoom in wird dadurch erzielt, dass mit der Maus zwei Punkte angeklickt werden und das Bild auf diese Eckpunkte skaliert werden.

Ich bedanke mich schon mal ganz, ganz arg für Eure Hilfe!!



Liebe Grüße

Nix blickerin
FirefighterHN@web.de


----------



## André Uhres (24. Jan 2006)

Wir machen keine Hausaufgaben. Du musst schon eigene Ideen, bzw. Lösungsvorschläge haben. 
Bevor du postest könntest du noch bei google anfragen.


----------



## L-ectron-X (24. Jan 2006)

Dein Prof. wird's schon können, schade nur dass du es nicht kannst... :roll: 
<ironie>Da frage ich mich, wie es Flachzangen immer wieder bis zum Prof. schaffen...</ironie> :roll: 
Und was erwartest du nun von uns?
Wir werden dir kein komplettes Programm bzw. eine komplette Lösung liefern!
Setz dich auf deinen Hosenboden! Zeige uns, was du bisher erreicht hast und stelle konkrete Fragen!


----------



## frager (25. Jan 2006)

also mal grob als anhaltspunkt. du must nen mousewheellistener bauen, der jeweils beim scrollen des mouserades musst du dann das image rein bzw. rauszoomen. den listener an deine component hängen, die das bild darstellt, ein jlabel oder oder so. oder ein canvas. oder du nimmst 2 buttons mit + und -.das geht so:


```
public void paint(Graphics g) {
        Graphics2D g2d = (Graphics2D) g;
        AffineTransform tx = new AffineTransform();
    
        double scalex = .5;
        double scaley = 1;
        tx.scale(scalex, scaley);
    
        double shiftx = .1;
        double shifty = .3;
        tx.shear(shiftx, shifty);
    
        double x = 50;
        double y = 50;
        tx.translate(x, y);
    
        double radians = -Math.PI/4;
        tx.rotate(radians);
    
        g2d.drawImage(image, tx, this);
    }
```

du überschreibst also die paint methode . schau dir auch mal die  API an. da sind alle klassen etc aufgelistet. vielleicht hilft dir das weiter und dann kannste ja nochmal fragen...

viele grüße


----------



## Bleiglanz (25. Jan 2006)

für sowas (Zoom) wird normalerweise

javax.swing.JViewport

empfohlen


----------



## Illuvatar (25. Jan 2006)

Der Fairness halber: nen Kollege von dir hat mich gestern im ICQ deswegen angeschrieben 

Naja halb 12 wollt ich dann pennen und hab ihm deswegen auch einen Teil davon geschrieben... http://www.java-forum.org/de/viewtopic.php?t=26945


----------



## AlArenal (25. Jan 2006)

Nix blickerin hat gesagt.:
			
		

> Hallo Freunde,
> 
> ich habe ein unlösbares Problem! Und zwar soll ich ne Hausarbeit schreiben in Java. Dumm, dass mein Prof. es selber nicht kann.



Da ich gestern wohl noch mit nem Kommolitonen mit derselben Aufgabe und einer Kommolitonin gesprochen habe, möchte ich an dieser Stelle folgendes anmerken:

1. "unlösbare Probleme" gibt es höchst selten und in der Regel werden sie nicht als Aufgabe an Studenten verteilt 
2. Dass euer Prof es nicht drauf hat, hab ich nun mehrfach gehört. Das sollte euch nicht daran hindern euch mit der Thematik auseinanderzusetzen (was ihr teils ja auch tut). Ich glaube die wenigstens Java-Entwickler auf diesem Planeten haben das Programmieren bei einem Prof gelernt. Dazu gibts aber massig Literatur in Buchform, im Netz, etc.
3. Abgabetermin bei euch ist der 12.2. - massig Zeit sich ein wenig damit zu beschäftigen.

Ich mache auch nicht anderer Leute Hausaufgaben, aber ich greife meinen beiden Kandidaten etwas unter die Arme, indem ich ihnen per ICQ Denkanstöße, Hinweise und Erklärungen liefere. Vielleicht bin ich auch vobelastet, da ich auch meine Nichte Nachhilfe in Mathe gebe (allerdings ist die ein hoffnungsloser Fall)


----------

