Stefan774
Grünschnabel
Es gibt zwar schon Beiträge die sich mit dem Zoomen eines Images befassen aber ich hab kein Problem mit dem vergrößern des img sondern mit dem Anpassen der X und Y-Koordinaten.
Ich möchte ganz einfach ein Image Zoomen und es sollte so gezoomt werden als währe der Koordinatenursprung in der Mitte des Images.
Da aber der Ursprung in der linken oberen Ecke liegt sieht es so aus als würde das Img nach rechts unten aus dem Bildschirmfliegen.
Führ eine Antwort währe ich sehr dankbar (bin noch ein newbie in Java)
Ach und hier mal mein Ansatz mit dem Zomm und AffineTransform
Und was mir noch aufgefallen ist daß wenn ich mein Image an der posX=0 und posY=0 zeichnen lasse bleibt das Bild auf den gleichen Koordinaten. Wenn ich aber die Koordinaten verändere (d.h. einen anderen Wert als 0 wähle) scheint es zu wandern also auch wieder nach rechts unten. Ist doch echt komisch da ich die Koordinaten nicht verändere.
Ich möchte ganz einfach ein Image Zoomen und es sollte so gezoomt werden als währe der Koordinatenursprung in der Mitte des Images.
Da aber der Ursprung in der linken oberen Ecke liegt sieht es so aus als würde das Img nach rechts unten aus dem Bildschirmfliegen.
Führ eine Antwort währe ich sehr dankbar (bin noch ein newbie in Java)
Ach und hier mal mein Ansatz mit dem Zomm und AffineTransform
PHP:
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
public class Star {
public double zoom;
public int posX;
public int posY;
public int n=0;
protected BufferedImage img;
public mainStar st;
public SpriteCache sprite;
AffineTransform trans = new AffineTransform();
public Star (){
sprite = new SpriteCache();
img = sprite.getSprite("bicho.gif");
}
public void paint(Graphics2D g){
g.setTransform(trans);
g.drawImage(img,posX,posY,st);
}
public void setZoom(double z){zoom = z;}
public void setpositionX(int pX){posX = pX;}
public void setpositionY(int pY){posY = pY;}
public double getPositionX(){return posX;}
public double getPositionY(){return posY;}
public void fly(){
trans.scale(zoom, zoom);
// posX-=trans.getScaleX(); // genau hier hab ich probleme ich komm einfach
// posY-=trans.getScaleY(); // nicht drauf wie man das anpasst
}
public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height) {
// TODO Auto-generated method stub
return false;
}
}
Und was mir noch aufgefallen ist daß wenn ich mein Image an der posX=0 und posY=0 zeichnen lasse bleibt das Bild auf den gleichen Koordinaten. Wenn ich aber die Koordinaten verändere (d.h. einen anderen Wert als 0 wähle) scheint es zu wandern also auch wieder nach rechts unten. Ist doch echt komisch da ich die Koordinaten nicht verändere.
Zuletzt bearbeitet: