Hallihallo,
ich möchte ein Image so skalieren und rotieren, das ich nur die x/y Koordinaten von Start und Ziel angeben und das Image sich dann zwischen beiden aufspannt.
Soweit bin ich mit meinem Code gekommen, aber die Koordinaten stimmen nicht, hat das damit zu tun, das ich erst rotiere und dann skaliere? Jedenfalls über die DrawImage - Methode lässt es sich ja nicht anders rum machen, oder doch? Wäre froh wenn da mal jemand Fachkundiges drüber schauen kann
ich möchte ein Image so skalieren und rotieren, das ich nur die x/y Koordinaten von Start und Ziel angeben und das Image sich dann zwischen beiden aufspannt.
Soweit bin ich mit meinem Code gekommen, aber die Koordinaten stimmen nicht, hat das damit zu tun, das ich erst rotiere und dann skaliere? Jedenfalls über die DrawImage - Methode lässt es sich ja nicht anders rum machen, oder doch? Wäre froh wenn da mal jemand Fachkundiges drüber schauen kann
Java:
public void drawObject(Graphics g) {
g = rotate(rotation,g);
g.drawImage(pics[akframe], (int) x, (int) y, scalex, scaley, null);
}
public void scaleImageFormTo(int x, int y, int zx, int zy) {
int disx = zx - x, disy = zy - y;
double dis = Math.sqrt(disx * disx + disy * disy);
scalex = (int) dis;
this.x = x;
this.y = y;
rotation = Math.atan2(disy, disx);
}
private Graphics2D rotate(double degrees,Graphics g) {
Graphics2D g2 = (Graphics2D) g;
AffineTransform affineTransform = AffineTransform.getRotateInstance(
rotation,pics[0].getWidth() / 2, pics[0].getHeight() / 2);
g2.setTransform(affineTransform);
return g2;
}