[ stryder @ 22.02.2011. 08:41 ] @
| Pokusao sam da napravim jednostavan program za crtanje poligona misem. Hteo sam da svaki klik misem zapise koordinate kliknutog mesta u odgovarajucu tacku i onda se samo iscrta poligon sa tim tackama. Na primer, samo 4 tacke kako bih dobio neki cetvorougao.
Shvatio sam da kada se klikne misem negde, te koordinate se upisu u sve 4 tacke, a ne samo u jednu, pa posle u narednu itd. Kako to da resim?
Code: import acm.graphics.*;
import acm.program.*;
import java.awt.event.*;
public class Pravougaonik extends GraphicsProgram {
public void run() {
addMouseListeners();
}
public void mouseClicked(MouseEvent e) {
GPolygon cetvorougao = new GPolygon();
cetvorougao.addVertex(e.getX(),e.getY());
cetvorougao.addVertex(e.getX(),e.getY());
cetvorougao.addVertex(e.getX(),e.getY());
cetvorougao.addVertex(e.getX(),e.getY());
add(cetvorougao);
}
} |
[ bantu @ 22.02.2011. 12:22 ] @
Code:
public class Pravougaonik extends GraphicsProgram {
GPolygon cetvorougao = new GPolygon();
public void run() {
add(cetvorougao);
addMouseListeners();
}
public void mouseClicked(MouseEvent e) {
cetvorougao.addVertex(e.getX(),e.getY());
// mozda ga ovde poslije moras repaintovati, nije mi poznat ovaj framework
}
}
[ stryder @ 22.02.2011. 13:45 ] @
Mislim da nije do repaint-a. Problem mi je samo kako da svaki klik misem tj. njegove koordinate uskladistim u drugu promenljivu. Na ovaj nacin se iste koordinate upisu u sva cetiri temena i dobijam samo tacku.
Moze i neki predlog kako da ovo drugacije resim
[ bgd2500 @ 22.02.2011. 16:27 ] @
Hint:
Code:
public class Pravougaonik extends GraphicsProgram {
private GPolygon cetvorougao;
private int count = 0;
public void run() {
addMouseListeners();
}
public void mouseClicked(MouseEvent e) {
if (count == 0) {
cetvorougao = new GPolygon();
}
cetvorougao.addVertex(e.getX(),e.getY());
count++;
if (count == 4) {
add(cetvorougao);
count = 0;
}
}
}
[ stryder @ 24.02.2011. 15:38 ] @
To je resenje! Sad kad vidim, deluje krajnje jednostavno, samo se treba setiti :)
Problem je bio sto sam ja sa svakim klikom iznova i iznova pravio novi poligon, a nisam se setio da stavim neki uslov koji bi to onemogucio.
Hvala puno za pomoc!
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.