Bild auf eine Position rotieren?!

Servo Herko

Aktives Mitglied
Hallo, mit welcher Methode kann man am besten ein Bild rotieren lassen Und das auf eine Position?
Damit meine ich das wenn jetzt ein Bild in der Mitte meines Fensters ist und die Maus auf Position x:0 y:0
ist, soll das Bild in diese Richtung schauen!

Ist das so einfach zu lösen?, oder muss man da was kompliziertes basteln?
 
Gibt eine Klasse namens AffineTransform.
Die kann Bilder drehen, vergrößern, verkleinern und haste nich' gesehen.

Mit solchen Dingen habe ich noch nicht gearbeitet, daher müsstest du dich mal in verschiedene Tutorials hineinversetzen.
Die richtigen Gradzahlen müsstest du dir dann selbst ausrechnen.
 
Zuletzt bearbeitet:
Jetzt hab ich diese Methode zum Rotieren gefunden.
Java:
	 private static BufferedImage rotateImage(BufferedImage src, double degrees) {
	        AffineTransform affineTransform = AffineTransform.getRotateInstance(
	                Math.toRadians(degrees),
	                src.getWidth() / 2,
	                src.getHeight() / 2);
	        BufferedImage rotatedImage = new BufferedImage(src.getWidth(), src
	                .getHeight(), src.getType());
	        Graphics2D g = (Graphics2D) rotatedImage.getGraphics();
	        g.setTransform(affineTransform);
	        g.drawImage(src, 0, 0, null);
	        return rotatedImage;
	    }

Aber wie bekomme ich das hin mit dem auf eine Position schauen hin?
Wäre halt am besten die Methode so zu gestalten:
player_look = rotateImage(player_look-copy, player.x, player,y);
 
Hab mal bischen gegoogelt und hab was perfektes gefunden 🙂
Trotzdem danke für eure Hilfe 🙂

Java:
private static BufferedImage rotateImage(BufferedImage src, double degrees) {
	        AffineTransform affineTransform = AffineTransform.getRotateInstance(
	                Math.toRadians(degrees),
	                src.getWidth() / 2,
	                src.getHeight() / 2);
	        BufferedImage rotatedImage = new BufferedImage(src.getWidth(), src
	                .getHeight(), src.getType());
	        Graphics2D g = (Graphics2D) rotatedImage.getGraphics();
	        g.setTransform(affineTransform);
	        g.drawImage(src, 0, 0, null);
	        return rotatedImage;
	    }
	 public static double calcRotationAngleInDegrees(Point centerPt, Point targetPt)
	 {
	     double theta = Math.atan2(targetPt.y - centerPt.y, targetPt.x - centerPt.x);
	     double angle = Math.toDegrees(theta);
	     if (angle < 0) {
	         angle += 360;
	     }

	     return angle;
	 }
 

Zurück
Oben