Siatka w C++/QT/OpenGL

0

Witam,

Moje pytanie dotyczy pewnego zadania jakie mam wykonać. Musze zrobić pewną symulację 2D w której przedstawię na siatce 2D(tabeli) powiedzmy 100x100 jakiś rozrost ziarna lub rozprzestrzenianie się jakiegoś zjawiska. Aplikację okienkową potrzebną na zadanie wykonałem w c++/QT. I teraz samą symulację chciałbym w OpenGL, mam wykonany widget odpowiedni tylko nie wiem jakby się za to zabrać, czy ktoś ogólnie mógłby zasugerować jak to ugryźć?
Ewentualnie w czym mógłbym podobną symulację wykonać, raczej wchodzą w grę biblioteki pod c++.

0

z tego mętnego opisu wynika, że robisz jakiś automat komórkowy, po kiego grzyba potrzebne ci do tego OpenGL?

0

Ewentualnie w czym mógłbym podobną symulację wykonać, raczej wchodzą w grę biblioteki pod c++.

To trochę dziwne pytanie; w każdej bibliotece graficznej. Pod samym Qt też możesz w 2D to narysować.

0
MarekR22 napisał(a):

z tego mętnego opisu wynika, że robisz jakiś automat komórkowy, po kiego grzyba potrzebne ci do tego OpenGL?

Tak robie automat komórkowy, pomyślałem, że może będzie lepiej/wygodniej w OpenGL. A masz jakąś propozycje jak to najprościej wykonać?

1

Tak robie automat komórkowy, pomyślałem, że może będzie lepiej/wygodniej w OpenGL

Mieszasz już na samym początku „logikę biznesową” (automat komórkowy) z warstwą prezentacji (jak to narysować).
Wszystko jedno jak i w czym to narysować. Możesz nawet robić ASCII-art. Zajmij się najpierw samym automatem.

0
Azarien napisał(a):

Tak robie automat komórkowy, pomyślałem, że może będzie lepiej/wygodniej w OpenGL

Mieszasz już na samym początku „logikę biznesową” (automat komórkowy) z warstwą prezentacji (jak to narysować).
Wszystko jedno jak i w czym to narysować. Możesz nawet robić ASCII-art. Zajmij się najpierw samym automatem.

Sam automat już mam wstępnie przygotowany w pseuokodzie więc zostaje mi go tylko zaimplementować, gdyż jest on dość trywialny. Teraz zostaje mi tylko to zobrazować i zastanawiam się jak będzie najprościej. Aplikacje okienkową w QT zrobiłem i sloty itp porobiłem sobie. Sam algorytmy rozrostu przy wyborze danych parametrów mam, tylko teraz to zobrazować może za pomocą pixeli żeby się fajnie rozprzestrzeniało.

0

No możesz to zrobić w OpenGL, ale trochę dziwne pytanie „jak”. Normalnie ;-)
Najprościej będzie narysować kratkę i wypełniać jej pola, a jak chcesz się rozpędzić to możesz zrobić trójwymiarowe pionki na planszy i obracaną kamerę :D

3

Najwyraźniej jesteś początkujący, więc lepiej zrób tak by było ci łatwo. Angażowanie do tego OpenGL nic ci nie da (na 100% zysk na perfomance będzie nikły).
Na twoim miejscu zrobiłbym po prostu widget, który potrafi rysować zawartość automatu, automat powinien emitować sygnał o zmianach w zawartości, który następnie podłączysz do slotu update swojego widget-a.

0
MarekR22 napisał(a):

Najwyraźniej jesteś początkujący, więc lepiej zrób tak by było ci łatwo. Angażowanie do tego OpenGL nic ci nie da (na 100% zysk na perfomance będzie nikły).
Na twoim miejscu zrobiłbym po prostu widget, który potrafi rysować zawartość automatu, automat powinien emitować sygnał o zmianach w zawartości, który następnie podłączysz do slotu update swojego widget-a.

Ok, tak mnie więcej bedę rozkminiać żeby to zrobić. Dzięki.

0

Mam jeszcze inne troche pytanie, w czym najlepiej tzn najłatwiej byłoby mi zobrazować automat komórkowy, chodzi o samą grafikę? Przy użyciu jakiej biblioteki, SDL, Allegro, OpenGL? Bo grafika pod QT mi trochę średnio siedzi jednak.

0

Mam jeszcze inne troche pytanie, w czym najlepiej tzn najłatwiej byłoby mi zobrazować automat komórkowy, chodzi o samą grafikę?

W tym co już znasz. Ja bym na przykład wziął GDI+, bo jest proste, bardzo podobne do grafiki w C#, i jestem w tym na bieżąco. Mówią że GDI+ jest powolne, ale w większości zastosowań wydajność jest nieistotna.

Ale jeśli jesteś początkujący i nie rysowałeś żadnej grafiki w kodzie, to... w zasadzie wszystko jedno — i tak musisz się czegoś nauczyć.

Nie miałem do czynienia z SDL (samą bibliotekę kompilowałem, ale nie ja pisałem kod jej używający - więc jako "używanie" to się chyba nie liczy). Ale sporo gier i programów korzysta z SDL więc musi być dobra.

Allegro - znałem bardzo dawno temu, to była ok. Ale wiem że nowe wersje się mocno zmieniły, nie przyglądałem się im.

OpenGL - jak już to korzystaj ze starego API (1.x/2.x) tzw. fixed-pipeline, i nie słuchaj co inni mówią. Nowe wersje wymuszają używanie shaderów i maksymalnie utrudniają najprostsze rzeczy – już nie mówiąc o tym, że zintegrowane karty graficzne często mają sterowniki tylko do 2.0 albo 1.2.

0

Napisałem automat w C++ pod QT. Cały mechanizm wydaje się być ok, teraz chcę go narysować, mam już pewną wizję. Mam mainwindow.ui gdzie stworzyłem sobie dwa widgety, jeden dla menu drugi na którym chce by rysowało. Czy to tak się da, żeby jak stworzyłem nowy widget i dla niego np dispplaywidget.ui i zeby tam rysowało?
Oraz inne pytanie, mam utworzone w menuwidget cały widok w ui, czyli button, editline itp. I teraz czy isteniej, że tak powiem automatyczna generacja tych przycisków do kodu cpp, bo zastanawiam się jak np w editline połączyć to z cpp, żeby np wartość domyślna ustawić itp?

1 użytkowników online, w tym zalogowanych: 0, gości: 1