Hallo, habe ein kleines Problem:
Ich will ein Bild vergrössern und es mit einem Thread zeichnen, und zwar so, dass es aussieht als würde es aufgezogen (also schrittweise grösser gemacht).
Eigentlich müsste der folgende Code funktionieren, doch es zeichnet mir die einzelnen Schritte nicht, sondern nur gleich das gezoomte Bild...
Seht ihr da vielleicht den fehler???
greez bj99
Ich will ein Bild vergrössern und es mit einem Thread zeichnen, und zwar so, dass es aussieht als würde es aufgezogen (also schrittweise grösser gemacht).
Eigentlich müsste der folgende Code funktionieren, doch es zeichnet mir die einzelnen Schritte nicht, sondern nur gleich das gezoomte Bild...
Java:
final int xp = xposm, yp = yposm;
Thread t1 = new Thread(new Runnable() {
public void run() {
//Neue Position bestimmen
double zvx = ((rix / 2) + 2 * (xp - (rix / 2)));
double zvy = ((riy / 2) + 2 * (yp - (riy / 2)));
double zvrx = ((rix / 2) - 2 * (xp - (rix / 2)));
double zvry = ((riy / 2) - 2 * (yp - (riy / 2)));
int[] zx1 = new int[11], zx2 = new int[11], zy1 = new int[11], zy2 = new int[11];
for (int i = 0; i < 11; i++) {
//positionen der einzelnen teilschritte in Arrays speichern
zx1[i] = (int) (0 - zvx * (i / 10));
zy1[i] = (int) (0 - zvy * (i / 10));
zx2[i] = (int) (rix + zvrx * (i / 10));
zy2[i] = (int) (riy + zvry * (i / 10));
}
Graphics2D agg = bild4.createGraphics();
showbild1 = false;
showbild4 = true;
//bild zeichnen
for (int i = 0; i < 11; i++) {
agg.drawImage(bild3, zx1[i], zy1[i], zx2[i],
zy2[i], 0, 0, rix * 2, riy * 2, null);
repaint();
try {
//Pause, damit man auch was sieht
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
showbild1 = true;
agg.dispose();
}
});
t1.start();
Seht ihr da vielleicht den fehler???
greez bj99
Zuletzt bearbeitet: