GDI vs DirectX vs OpenGL Graphics and Sound - THE C # și
La noi din: 13.03.2007
Postări: 41
Mediul de dezvoltare: Visual Studio 2008
Origine: Düsseldorf

GDI + vs DirectX vs OpenGL
Buna dimineata,
Lucrez într-o companie de prelucrare a oțelului care creează modele tehnologice. În acest moment, lucrăm puțin vechi cu o versiune Fortran veche, care este integrată în Visual Studio 6. GUI și ieșirea grafică sunt foarte bune
Acum am reușit în sfârșit să-l conving pe șeful meu să obțină un nou mediu de dezvoltare cu care să putem implementa interfața grafică și rezultatul calculelor, dar calculul în sine este încă făcut în Fortran.
Am decis VS2005 cu C #. Structura programului ar fi astfel: Introducerea tuturor datelor posibile printr-un formular. După apăsarea butonului Start, datele sunt trimise către DLL-ul extern Fortran, care apoi începe să se calculeze. După un calcul, rezultatele sunt returnate la C #, C # atrage rezultatele curente.
Acum este vorba de afișarea rezultatului grafic al rezultatelor pe ecran, văd 3 posibilități: GDI +, DirectX și OpenGL.
Desigur, este important CE VREAU SĂ FAC:
- diagrame normale într-un sistem de coordonate X/Y, unde de ex. o curbă de temperatură este afișată în timp.
- Curbele de temperatură ca izoterme; de exemplu. un dreptunghi în care punctele fierbinți sunt roșii și fin gradate spre albastru unde este rece.
- Imagini desenate liber, fie inserate ca BMP/orice format de imagine, fie desenate în timpul rulării.
- Ar trebui să pot imprima diagramele și să le salvez ca imagine.
- Datorită noilor posibilități de afișare a lucrurilor în 3D, încăperile cu sistemele noastre de ex.
În ultimele zile am făcut puțin cu GDI +, ceea ce ar fi suficient pentru diagramele X/Y normale. După cum înțeleg, desenul trebuie făcut în metoda OnPaint (). Ar fi mai bine dacă aș da impulsul de a redesena, astfel încât procesorul să nu fie împovărat inutil. Voi primi tutorialul imediat Desenare în programe Windows (Paint/OnPaint, PictureBox) duce la minte. Cred că va răspunde la o mulțime de întrebări (doar o prostie că este greu de tipărit).
Nu prea mă înțeleg cu SDK DirectX din februarie 2007. Pe de o parte, ajutorul este actualizat din august 2005, astfel încât metodele Direct3D etc. au fost redenumite sau lipsesc/înlocuiesc. Nu am reușit să trasez linii simple, dar, de asemenea, nu am reușit să rămân blocat în mod corespunzător încă.
Pe de altă parte, mă deranjează faptul că se spune că DirectDraw nu mai este acceptat și este mai bine să nu te mai dezvolți cu el. Deoarece rămânem pe XP aici, DirectX9 va rămâne probabil ultima versiune pentru XP. Deci nu-mi pasă, corect?
Nu am atins încă OpenGL.
Ar fi frumos dacă unul sau altul și-ar putea posta experiențele cu cele 3 sisteme, așteaptă cu nerăbdare fiecare impuls și hrană pentru gând
Cu noi din: 04.06.2005
Contribuție: 1.439
Mediul de dezvoltare: Notepad ++ + csc + nmake
Origine: Linz, Austria
La noi din: 13.03.2007
Postări: 41
Mediul de dezvoltare: Visual Studio 2008
Origine: Düsseldorf
Subiect de pornire
Cu noi din: 04.06.2005
Contribuție: 1.439
Mediul de dezvoltare: Notepad ++ + csc + nmake
Origine: Linz, Austria
La noi din: 17.03.2005
Contribuție: 5.914
Mediul de dezvoltare: VS 2017/VS Code
Origine: Elveția Centrală
Pentru diagrame și nu povești 2D animate grozave, aș folosi și GDI +. Este ușor de făcut și, așa cum am spus, nu necesită neapărat o perioadă lungă de antrenament.
Când vine vorba de animații și/sau vizualizări 3D mai complexe, nu există nicio cale în jurul OpenGL sau DirectX.
Aici sunteți răsfățați pentru alegere, pentru OpenGL veți găsi mai multe tutoriale în general, dar mai ales nu în legătură cu C #.
Există relativ multe tutoriale pentru DirectX pe Internet, în special în legătură cu C #. Dar mai ales în engleză.
Mai întâi aș rezolva reprezentările simple cu GDI + și mai târziu extind ceva cu OpenGL sau DirectX.
La noi din: 07/07/2005
Contribuții: 2.890
Mediul de dezvoltare: SharpDevelop/VS.NET
Origine: Germania
| Citat: |
| doar prost că este greu de tipărit |
Undeva a fost o discuție despre tipărirea PDF-ului, cu privire la forum, căutați-l
| Citat: |
| O „problemă” pe care o mai am cu GDI este că originea desenului este în stânga sus. În cazul diagramelor, este în partea stângă jos. Poți schimba cumva sau trebuie să îl convertesc de fiecare dată? |
Căutați matrice și traducere dacă vă place asta
| Cod C #: |
| Matrice matrice = matrice nouă (); matrix.Translate (x, y); |
faceți acest lucru și aplicați-l obiectului grafic:
lucrul este mâncat,
altfel ar trebui întotdeauna să te convertești.
Ceea ce în acest caz nu ar fi o mare problemă, doar inversați Y.
DeinY = origine - Y.
| Citat: |
| Văd 3 posibilități: GDI +, DirectX și OpenGL. |
Aș folosi și GDI.
Cu DirectX și OpenGL aveți mai multă muncă, deoarece trebuie să vă familiarizați cu subiectul în continuare. La GDI puteți începe să desenați imediat.
Cu OpenGL și DirectX trebuie mai întâi să creați o fereastră de afișare. Desigur, puteți afișa și grafică tridimensională mai târziu.
IMHO, DirectX implică cel mai mare efort.
Deci, luați GDI și - dacă este necesar - treceți la OpenGL.
Dar pentru mine această nevoie nu a apărut niciodată, deoarece GDI este suficient de rapid.
Această postare a fost editată de 1 dată, pentru ultima dată de dr4g0n76 pe 15.03.2007 12:28 PM .
La noi din: 03/08/2006
Postări: 95
Mediul de dezvoltare: VS 2010 Pro
Origine: Tirol
Cu noi din: 1 octombrie 2006
Contribuții: 11.397
Mediu de dezvoltare: Visual Studio 08/05/10 Prof.
Sunt, de asemenea, pentru gdi pentru reprezentări simple (2D) și dacă doriți să treceți la 3D, puteți utiliza și cadrul XNA. Cu aceasta este mult mai ușor să dezvolți 3D, deoarece ești ușurat de multe lucruri pe care încă trebuie să le faci manual cu directX standard gestionat.
în caz contrar, dacă doriți doar să afișați modele geometrice simple în 3D simulat, puteți face acest lucru și cu gdi, dar nu aveți texturi acolo.
La noi din: 13.03.2007
Postări: 41
Mediul de dezvoltare: Visual Studio 2008
Origine: Düsseldorf
Subiect de pornire
În primul rând mulțumesc pentru răspunsuri!
Odată cu transformarea matricei, citisem ceea ce funcționează: oglindiți-o pe axa X și glisați-o în jos pe înălțimea ecranului. Cu toate acestea, BMP-urile sunt, de asemenea, oglindite, ceea ce nu este chiar sensul. Acum am suprascris metodele de „înlocuire” pentru metodele Graphics.Draw **** de care am nevoie, unde corectez valoarea Y.
Zedograful arată destul de frumos. Cineva chiar a făcut un efort. Trebuie să văd dacă se potrivește scopurilor mele, altfel îl poți folosi în continuare în alte scopuri de afișare.
O să arunc o privire la OpenGL acasă în weekend. Am găsit deja câteva pagini cu împachetări pentru C #.
Nu voi atinge XNA deocamdată. În primul rând, deoarece acest lucru este disponibil doar pentru C # Express în acest moment și, în al doilea rând, nu vreau să trebuiască să instalez alte mii de programe pe sistemele țintă.