karo Napisano Maj 1, 2015 Zgłoś Udostępnij Napisano Maj 1, 2015 Witam, mam pytanie odnośnie napisania kodu, mianowicie muszę napisać program, który wybierze z listy wartość minimanlą i maksymalną współrzędnych x i y a także obliczy szerokość i wysokość, odnosząc się do wcześniej stworzonej klasy Point. Do tej pory mam coś takiego: * Klasa Point: class Point { private double x; private double y; public Point (double u, double v){ x=u; y=v; } public double getX(){ return x; } public double getY(){ return y; } public void setX(double new_x){ x=new_x; } public void setY(double new_y){ x = new_y; } } Klasa BoundingBox, czyli główny problem: import java.util.ArrayList; import java.util.List; public class BoundingBox { private Point minPoint; private Point maxPoint; private double height; private double width; List<Point> pointlist = new ArrayList(); public BoundingBox (List points){ pointlist=points; for (int i=0; i<pointlist.size();i++){ pointlist.add(new Point(1.0,2.0)); // ??? adding a new point pointlist.add(new Point(2.0,3.0)); // ?? } } public Point getMinPoint(){ for (int i=0; i<pointlist.size();i++); return minPoint; } public Point getMaxPoint(){ return maxPoint; } public double getHeight(){ return height; } public double getWidth(){ return width; } } Proszę o sugestie. Pozdrawiam. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
PaSaSaP Napisano Maj 1, 2015 Zgłoś Udostępnij Napisano Maj 1, 2015 Napisz coś więcej, na jakiej podstawie ma wybierać to minimum i maksimum? Twój punkt ma dwie współrzędne, więc można je obie porównywać. Wysokość i szerokość, mając dane punkty, już łatwo policzyć. To jest sama matematyka. Jeśli w punkcie x odpowiada za szerokość, a y za wysokość, to szerokość można określić jako wartość bezwzględną różnicy współrzędnych x punktu minPoint oraz maxPoint. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
karo Napisano Maj 2, 2015 Autor Zgłoś Udostępnij Napisano Maj 2, 2015 Na podstawie współrzędnych. Mam pewien zbiór punktów w układzie współrzędnych i muszę określić punkt minimalny i punkt maksymalny : Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
PaSaSaP Napisano Maj 2, 2015 Zgłoś Udostępnij Napisano Maj 2, 2015 W takim układzie, to minPoint będzie miał najmniejszą znalezioną współrzędną osi poziomej (wartość x) oraz najmniejszą znalezioną współrzędną osi pionowej (wartość y). Analogicznie punkt maxPoint będzie miał największą znalezioną współrzędną osi poziomej (wartość x) oraz największą znalezioną współrzędną osi pionowej (wartość y). Zaimplementowanie tego to w pętli porównywanie wartości i znalezienie minimum/maximum. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
karo Napisano Maj 2, 2015 Autor Zgłoś Udostępnij Napisano Maj 2, 2015 Hmm,ok, w takim razie może źle zadałam pytanie. Wiem na czym polega znalezienie punktu minimalnego i maksymalnego niestety nie bardzo wiem jak mam to zapisać w pętli, jak porównać te wartości, gdyż nigdy takiego programu nie pisałam. Czy mam wprowadzić jakieś nowe zmienne typu x_min, x_max? Kompletnie nie mam pomysłu... Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
andrus19 Napisano Maj 2, 2015 Zgłoś Udostępnij Napisano Maj 2, 2015 tak, przechodzisz po liście punktów i gdy znajdziesz wartości mniejsze przypisujesz odpowiednie do min_x lub min_y np. coś takiego: public Point getMinPoint() { double min_x, min_y; min_x = pointlist.get(0).getX(); min_y = pointlist.get(0).getY(); for (Point point : pointlist) { if (point.getX() < min_x) { min_x = point.getX(); } if (point.getY() < min_y) { min_y = point.getY(); } } minPoint = new Point(min_x, min_y); return minPoint; } Metodę getMaxPaint() piszesz analogicznie. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
karo Napisano Maj 3, 2015 Autor Zgłoś Udostępnij Napisano Maj 3, 2015 Super, dziękuję bardzo;) Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.