GDI vs DirectX vs OpenGL графика и звук - Ц # и
Со нас од: 03/13/2007
Објави: 41
Развојна околина: Визуелно студио 2008 година
Потекло: Дизелдорф

GDI + vs DirectX vs OpenGL
Добро утро,
Јас работам во компанија за преработка на челик што создава технолошки модели. Во моментов работиме малку застарено со стара верзија на Fortran која е интегрирана во Visual Studio 6. GUI и графички излез се многу добри
Сега конечно успеав да го убедам мојот шеф да добие ново развојно опкружување со кое ќе можеме да ги имплементираме GUI и резултатите од пресметките, но самата пресметка сè уште е направена во Fortran.
Се одлучивме за VS2005 со C #. Структурата на програмата би била ваква: Внесување на сите можни податоци преку формулар. По притискање на копчето за стартување, податоците се испраќаат до надворешната Fortran DLL, која потоа започнува да се пресметува. По пресметката, резултатите се враќаат во C #, C # ги црта тековните резултати.
Сега се работи за донесување графички излез на резултатите на екранот, гледам 3 можности: GDI +, DirectX и OpenGL.
Се разбира, важно е ШТО сакам да направам:
- нормални дијаграми во координатен систем X/Y, каде што на пр. се прикажува крива на температура со текот на времето.
- Криви на температурата како изотерми; На пр. Правоаголник каде жариштата се црвени и ситно се градат до сино каде што е ладно.
- Слободно нацртани слики, или вметнати како BMP/каков било формат на слика или подготвени на време на траење.
- Треба да имам можност да ги отпечатам дијаграмите и да ги зачувувам како слика.
- Новите можности исто така ги покажуваат работите во 3Д, простории со нашите системи на пр.
Последните неколку дена правев малку со GDI +, што би било доволно за нормални X/Y дијаграми. Како што го разбирам, цртежот мора да се изврши во методот OnPaint (). Подобро би било да дадам импулс за прекројување за да не се оптоварува процесорот без потреба. Веднаш ќе го добијам упатството Цртеж во програми за Windows (Paint/OnPaint, PictureBox) на ум. Претпоставувам дека тоа ќе одговори на многу прашања (само глупаво што е тешко да се печати).
Јас навистина не се согласувам со SDX на DirectX од февруари 2007 година. Од една страна, помошта е сè уште ажурирана од август 2005 година, така што методите Direct3D итн. Беа преименувани или недостасуваат/заменуваат. Не успеав да нацртам едноставни линии, но сè уште не успеав правилно да заглавам.
Од друга страна, ми пречи што се вели дека DirectDraw веќе не е поддржан и подобро е да не се развивам со него повеќе. Бидејќи остануваме тука на XP, DirectX9 веројатно ќе остане последната верзија за XP. Па не ми е гајле, нели?
Сè уште не сум го допрел OpenGL.
Би било убаво кога едниот или другиот би можеле да ги објават своите искуства со 3-те системи, се радувам на секој импулс и храна за размислување
Со нас од: 04.06.2005 година
Придонес: 1.439
Развојна околина: Бележник ++ + csc + nmake
Потекло: Линц, Австрија
Со нас од: 03/13/2007
Објави: 41
Развојна околина: Визуелно студио 2008 година
Потекло: Дизелдорф
Почеток на темата
Со нас од: 04.06.2005 година
Придонес: 1.439
Околина за развој: Бележник ++ + csc + nmake
Потекло: Линц, Австрија
Со нас од: 17.03.2005 г.
Придонес: 5.914
Развојна околина: VS 2017/VS код
Потекло: Централна Швајцарија
За дијаграми и не одлични анимирани 2Д приказни, би користел и GDI +. Лесно е да се направи и, како што реков, не мора да бара долг период на обука.
Кога станува збор за посложени анимации и/или 3Д визуелизации, нема начин да се обидете со OpenGL или DirectX.
Тука сте разгалени за избор, за OpenGL ќе најдете повеќе упатства во целина, но главно не во врска со C #.
Постојат релативно многу упатства за DirectX на Интернет, особено во врска со C #. Но, најмногу на англиски јазик.
Прво би ги разработил едноставните претстави со GDI +, а подоцна ќе проширам нешто со OpenGL или DirectX.
Со нас од: 07.07.2005 година
Прилози: 2.890
Развојна околина: SharpDevelop/VS.NET
Потекло: Германија
| Цитат: |
| само глупаво што е тешко да се печати |
Некаде се дискутираше за печатење на ПДФ, во врска со форумот, побарајте го
| Цитат: |
| „Проблем“ што сè уште го имам со GDI е што потеклото за цртање е горе лево. Во случај на дијаграми, тоа е лево долу. Можете ли да го промените тоа некако или морам да го конвертирам секој пат? |
Побарајте матрица и превод ако ви се допаѓа тоа
| C # код: |
| Матрица матрица = нова матрица (); матрица. Превод (x, y); |
направете го тоа и применете го на графичкиот објект:
јаде нешто,
во спротивно секогаш ќе мораше да се преобразиш.
Што во овој случај не би било голема работа, само превртете го Y.
DeinY = потекло - Y.
| Цитат: |
| Гледам 3 можности: GDI +, DirectX и OpenGL. |
Јас исто така би користел GDI.
Со DirectX и OpenGL имате повеќе работа, затоа што треба дополнително да се запознаете со оваа тема. На GDI можете да започнете со цртање веднаш.
Со OpenGL и DirectX прво треба да креирате прозорец за приказ. Се разбира, подоцна може да прикажете и 3-димензионална графика.
IMHO, DirectX вклучува најголем напор.
Затоа земете GDI и - доколку е потребно - префрлете се на OpenGL.
Но, за мене оваа потреба никогаш не се појави бидејќи ГДИ е доволно брз.
Овој пост е изменет 1 пат, за последен пат од dr4g0n76 на 15.03.2007 12:28 .
Со нас од: 03/08/2006
Објави: 95
Развојна околина: VS 2010 Pro
Потекло: Тирол
Со нас од: 1 октомври 2006 година
Прилози: 11.397
Развојна околина: Визуелно студио 08/05/10 Проф.
Јас сум исто така за gdi за едноставни претстави (2D) и ако сакате да се префрлите на 3D тогаш можете да ја користите и рамката XNA. Со ова е многу полесно да се развие 3D затоа што сте ослободени од многу работи што сè уште треба да ги правите рачно со стандардниот управуван DirectX.
инаку, ако сакате да прикажувате само едноставни геометриски модели во симулиран 3Д, можете да го направите и со gdi, но немате текстури таму.
Со нас од: 03/13/2007
Објави: 41
Развојна околина: Визуелно студио 2008 година
Потекло: Дизелдорф
Почеток на темата
Прво на сите, благодарам за одговорите!
Со трансформацијата на матрицата прочитав што работи: огледало го на X-оската и лизгај го надолу за висината на екранот. Сепак, БМП тогаш исто така се огледуваат, што не е баш во поентата. Сега ги препишав методите за „замена“ за графиконите. Нацртај **** методи што ми требаат, каде што ја коригирам вредноста Y.
Зедграфот изгледа прилично убаво. Некој навистина се потруди. Морам да видам дали одговара на моите цели, во спротивно сеуште можете да го користите за други цели на прикажување.
Haveе разгледам OpenGL дома за време на викендот. Веќе најдов неколку страници со обвивки за C #.
Засега нема да ја допрам XNA. Прво, затоа што ова е достапно само за C # Express во моментот, и второ, не сакам да инсталирам илјада други програми на целните системи.