rysowanie siatki złożonej z punktów

Dyskusje na temat Javy.
paul_begginer
Nowicjusz
Posty: 1
Dołączył(a): piątek, 18 listopada 2011, 00:45

rysowanie siatki złożonej z punktów

Post przez paul_begginer »

Witam.
Postanowiłem założyć nowy wątek ponieważ może ktoś z forumowiczów miał kiedyś podobnym problem i będzie potrafił dać parę cennych rad.
Istota problemu - jakim sposobem uzyskać w oknie apletu taki efekt końcowy jak na załączonym obrazku.
Siatka, przykładowo 50x50, punktów o dwóch kolorach. Będą one potem służyć do symulacji i każdy kolor będzie reprezentował inny płyn ale to akurat mniejszy problem.
Dotychczas wymyśliłem że można to uzyskać na kilka sposobów: stworzyć dwie klasy punktów: czerwone i niebieskie, przypisać im tablice ze współrzędnymi (tylko to odpada bo kto będzie klepał współrzędne (x,y) dla 2500 punktów :x ) i potem spróbować to narysować na kanwie obiektu graficznego wykorzystując metodę fillOval. Dotarłem również do klasy Point2D, próbowałem skorzystać z metody clone ale również nie wychodziło. Usunąłem w cholerę wszystko z NetBeans i zacząłem kombinować z czarnymi punktami, chcąc potem je 'kolorować' za pomocą interfejsu MouseListener ale to przeszło moje siły. Wychodzę z siebie po problem z pozoru banalny...a nie wiem jak go podejść :evil: !
Będę wdzięczny za rady.


bitmap.png
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: rysowanie siatki złożonej z punktów

Post przez Morfidon »

Tak na pierwszy rzut oka:

Stwórz klasę Punkt stwórz właściwość odpowiedzialną za stan (jeśli tylko jest czerwony i niebieski kolor) - 0 będzie sugerowało niebieski, a 1 czerwony, co zapisz w jakichś stałych. Tworzysz również właściwości reprezentujące x i y, domyślnie ustawiasz 0,0.

Tworzysz klasę Mapa, która będzie przechowywała rozmiar maksymalny mapy x i y.

Tworzysz w tej klasie funkcje, która pozwolą dodać nowe elementy takie jak np. Punkt. (sprawdzasz, czy nie ma już Punktu, który takiej współrzędnej już nie ma etc., albo żeby było szybciej, to jeśli już jest to nadpisuje taki przypadek...)
Tworzysz w tej klasie funkcje, która pozwoli wyświetlić mapę...

i tak dalej ogólnie ideę widzisz, możliwe, że da się to zmienić na coś schludniejszego... skoro elementami są tylko Punkty i na pewno będą to tylko punkty to może coś z klasami wewnętrznymi etc. ale to już tylko zabawa...

Jeśli chodzi o szybkie stworzenie tych punktów z odpowiednimi współrzędnymi to wystarczy, że skorzystasz z pętli + break; + continue; dla miejsc, które są jakieś nietypowe, w klasie Punkt masz konstruktor min. 3-elementowy reprezentujący stan (kolor) i wsp. x i y.

Pozdrawiam :)
Post Reply