Ştiri:

Vă rugăm să citiţi Regulamentul de utilizare a forumului Scientia în secţiunea intitulată "Regulamentul de utilizare a forumului. CITEŞTE-L!".

Main Menu

Adrian

Creat de astan, Aprilie 11, 2010, 03:01:45 AM

« precedentul - următorul »

0 Membri şi 1 Vizitator vizualizează acest subiect.

astan

Buna seara,

Ma numesc Adrian Stan, am 31 de ani si sunt absolvent al universitatii Politehnica din Bucuresti.
Lucrez ca inginer software de 9 ani, fiind implicat in dezvoltarea de "tool-uri" comerciale pentru limbajul C++ (in special depanatoare, profilere, dar si compilatoare, implementari STL).
Sunt interesat de linux (in special de kernel), si, in timpul liber, incerc sa-mi aduc aportul la dezvoltarea KDE.
In afara de asta, mai sunt interesat de matematica, structuri de date si algoritmi, tehnici de design software.

In privinta fizicii nu am decat cunostinte de baza. Insa sunt sigur ca voi beneficia de ajutorul vostru si ca mi le voi perfectiona.

bbb

Bine ai venit pe forumul Știinta Azi, Adrian!
Vei întâlni aici mulți pasionați de fizică de la care vei putea învăța, iar tu la rândul tău ne vei putea ajuta pe noi să învățăm despre programare.

AlexandruLazar

Salutări Adrian,

Sper să fie interesant pentru tine ce se întâmplă pe aici. Îmi pare bine să văd că există oameni interesați de dezvoltarea Open Source prin zonă. Din păcate interesul meu pentru KDE a fost insuficient :).

Să ne citim cu bine!

Adi

Salutari, Adrian! Bine ai venit la Stiinta Azi! Gasesti aici o comunitate de oameni pasionati de stiinta si programare. Apropo de C++, stii cum poti face animatii 2D simple in C++ care sa poata fi vazute apoi pe orice calculator, indiferent de sistem de operare? Am facut o simulare a sistemului solar in C++ (ii dai planetele, masa, pozitia si viteaza initiala si iti calculeaza la momente ulterioare unde e fiecare planeta). Am facut sa afisezi asta, dar nu merge cand mut pe alt calculator. Cum faci simplu sa dai coordonatele unui punct si sa ti-l afiseze?
Pagina personala: http://adrianbuzatu.ro

AlexandruLazar

Poti sa ne dai ceva mai multe detalii? Ce biblioteca ai folosit pentru afisarea planetelor?

Solutia pe care eu ti-o sugerez este ca acele parti ale codului care au nevoie de facilitati din afara bibliotecii standard sa le scrii folosind o biblioteca portabila, cum ar fi SDL sau OpenGL. Asta iti permite sa generezi executabile pentru alte sisteme de operare -- trebuie doar sa le recompilezi pentru acele sisteme de operare.

Daca ai nevoie, am acces la platforme Linux pe 64 de biti (si pe 32 de biti la munca), OS X, FreeBSD si Windows 7, deci pot sa iti compilez codul pe ele daca nu le ai la indemana.

Aveam si eu de gand sa scriu asa ceva pe la vara, cand mai prind niste timp liber -- poate extindem/imbunatatim programul impreuna.

astan

#5
Salut Adi,

Poti folosi una din numeroasele biblioteci existente. AlexandruLazar a specificat deja cateva exemple excelente.
Mai sunt si altele, in afara celor specificate. De exemplu, pentru 2D mai poti folosi Allegro (C) sau SFML (C++).
Mai poti folosi intregi framework-uri care abstractizeaza mult mai mult (acces la sistemul de fisiere, la  baze de date, aplicatii client server, etc), precum Qt, wxWidgets sau FLTK (FLTK ofera, in particular, o integrare foarte buna cu OpenGL).

Daca ar fi sa aleg, ar trebui sa decid intre SDL si Qt. Exista documentatie excelenta pentru fiecare dintre ele.

a) Qt
Qt, de exemplu, ofera "Graphics View Framework", un framework pentru rendering 2D foarte eficient, documentat aici: http://doc.trolltech.com/4.6/graphicsview.html
Ce e foarte convenabil este ca poti realiza animatii intr-o scena relativ usor, folosind Graphics View. Mai ai acces si la tot felul de transormari ce pot fi utile (de exemplu zooming), puse la dispozitie e catre framework.

Qt se poate instala foarte usor, atat pe Linux cat si pe Windows. Tot ce trebuie a faci este sa descarci intregul SDK (http://qt.nokia.com/downloads) (ai grija sa selectezi optiunea LGPL) si sa rulezi un installer. In pachetul respectiv gasesti atat librariile Qt, cat si un IDE pentru dezvoltare de aplicatii (Qt Creator), un designer, un tool pentru internationalizare, documentatie completa, exemple.

Daca vrei sa mergi pe solutia Qt, un bun punct de plecare este acest exemplu: http://doc.trolltech.com/4.6/graphicsview-collidingmice.html

De asemenea, mai exista si tutoriale video, disponibile aici:
http://qt.nokia.com/developer/learning/online/training/training-day-at-developer-days-2009/
Alege-le pe cele care se refera la QGraphicsView

b) SDL
SDL este o biblioteca 2D excelenta, ofera un API foarte intuitiv, vei invata sa o folosesti repede.
E scrisa in C, nu in C++ (dar, bineinteles o poti folosi fara probleme in programe C++).
Poti gasi tutoriale excelente aici:

http://lazyfoo.net/SDL_tutorials/index.php

Daca alegi o solutie bazata pe Qt sau SDL, te pot ajuta.

PS: de asemenea, pot compila pe Linux x86 si/sau Windows XP daca vei avea nevoie.

Adi

Multumesc mult la amandoi pentru detalii. Eu am folosit Qt si am creat animatia. Si merge pe masina mea virtuala de linux. Dupa ce o compilez nu merge si pe masina mea de Windows. Din cate inteleg de la voi e normal, ar trebui recompilata. Dar ca sa fie recompilata trebuie sa ai instalat Qt, C++ si sa stii sa o faci. Eu voiam sa fac acesta ca un proiect educational, ca un profesor care nu se pricepe la calculatoare absolut deloc sau un elev in aceeasi conditie sa poata folosi animatia. Cum ati descris voi mai sus nu merge. O solutie ar fi ca cineva sa recompileze pe diferite sisteme de operare si sa oferim fisierele .exe pentru fiecare in parte. Dar apoi cand aduc modificari la proiect, trebuie iar recompilat in toate.

De aceea, desi iubeam C++ in sensul ca sunt familiar cu el de la scoala si nu sunt prea familiar cu Java, mi se pare ca cea mai buna solutie este realizarea aceluiasi proiect intr-un Java Applet care merge apoi pe orice sistem de operare si pe orice browser, fara sa fie recompilat ceva, cu efort zero din partea utilizatorului. Acum nu am timp de asta, dar in cateva luni, dupa ce termin doctoratul, o sa revin la proiect. Odata invat Java Applet, apoi as putea face multe alte animatii educationale amuzante. Voi ati facut ceva animatii educationale? V-ar interesa sa faceti? Sau sa facem mai multi una mai ampla?
Pagina personala: http://adrianbuzatu.ro

florin_try


Adi, off topic si din curiozitate, esti tentat sa te intoarci in Romania dupa ce termini doctoratul (si/sau vre-un postdoc)?

Adi

Citat din: florin_try din Aprilie 11, 2010, 06:30:03 AM
Adi, off topic si din curiozitate, esti tentat sa te intoarci in Romania dupa ce termini doctoratul (si/sau vre-un postdoc)?

Da, sunt tentat. De cand eram in liceu simteam ca pot si vreau sa ajut societatea romaneasca sa creasca. De cand am plecat din tara de 9 ani mereu am citit stirile din tara, mereu m-am straduit singur sa ma interesez despre cum e cercetarea in tara, care sunt numele cercetatorilor in fizica particulelor, sa le dau emailuri, sa le propun colaborare, sa le ofer sugestii despre cum sa promoveze stiinta si tot asa. Pe scurt, tot timpul meu liber a fost petrecut cu gandul la Romania, cunoscand-o mai bine din informatii pe internet, din dialoguri pe internet cu cercetatori si jurnalisti din tara, iar de doi ani ajutand-o concret prin formearea acestui site de stiinta, care este cel mai mare din tara (si din care din pacate studentii din tara, zeci de mii cati sunt, unul nu a facut un site de stiinta). Consider ca poti ajuta tara si din strainatate. Acum dupa 5 ani si ceva de Canada abia astept sa vin in Europa la CERN, de unde voi fi mai aproape de tara si voi putea in sfarsit sa particip la conferinte ale fizicienilor romani in Romania si ale jurnalistilor de stiinta romani in Romania. Ideal e sa cresc in cariera in strainatate si sa invat in strainatate, ca apoi sa am ce aduce nou Romaniei. In principiu sunt tentat sa ma intorc in tara. Dar intai trebuie sa se schimbe lucrurile, iar pasul pe care il face Funeriu acum este de bun augur si am mare incredere. Sa vedem cum iese totusi.

Pot sa iti intorc intrebarea? Banuiesc ca esti in tara si intrebarea este daca esti tentat sa pleci, sau daca ramai in tara, ce te ajuta sa simti ca ajuti cu adevarat tara fiind in tara? Pentru mine a merge doar la munca in Romania si a fii consumator in Romania - ajutand astfel economia - nu inseamna ca ajuti cu adevarat tara. Cu adevarat simt ca o ajuta voluntarii in toate domeniile si cei care sunt cu adevarat excelenti si unici in munca lor - ca niste profesori unici, sau ca Isarescu -, dar in general cred ca romanii care doar merg la munca nu ajuta tara cu mult.
Pagina personala: http://adrianbuzatu.ro

florin_try

 
Sunt plecat de citiva ani din tara. Momentan lucrez in state.

AlexandruLazar

Citat din: Adi din Aprilie 11, 2010, 06:24:29 AM
Multumesc mult la amandoi pentru detalii. Eu am folosit Qt si am creat animatia. Si merge pe masina mea virtuala de linux. Dupa ce o compilez nu merge si pe masina mea de Windows. Din cate inteleg de la voi e normal, ar trebui recompilata. Dar ca sa fie recompilata trebuie sa ai instalat Qt, C++ si sa stii sa o faci. Eu voiam sa fac acesta ca un proiect educational, ca un profesor care nu se pricepe la calculatoare absolut deloc sau un elev in aceeasi conditie sa poata folosi animatia. Cum ati descris voi mai sus nu merge. O solutie ar fi ca cineva sa recompileze pe diferite sisteme de operare si sa oferim fisierele .exe pentru fiecare in parte. Dar apoi cand aduc modificari la proiect, trebuie iar recompilat in toate.

Da, in cazul C++ așa se face. Nu e neapărat o problemă majoră, pentru că procesul se poate automatiza și nu ai nevoie neapărat de Windows pentru a compila executabile Windows, deci nu "doare". Eventual poți include în aplicație o facilitate de genul "check for updates" care să verifice dacă există o versiune nouă și să o downloadeze automat.

CitatDe aceea, desi iubeam C++ in sensul ca sunt familiar cu el de la scoala si nu sunt prea familiar cu Java, mi se pare ca cea mai buna solutie este realizarea aceluiasi proiect intr-un Java Applet care merge apoi pe orice sistem de operare si pe orice browser, fara sa fie recompilat ceva, cu efort zero din partea utilizatorului. Acum nu am timp de asta, dar in cateva luni, dupa ce termin doctoratul, o sa revin la proiect. Odata invat Java Applet, apoi as putea face multe alte animatii educationale amuzante. Voi ati facut ceva animatii educationale? V-ar interesa sa faceti? Sau sa facem mai multi una mai ampla?

Eu n-am mai făcut animații educationale dar în momentul ăsta lucrez la programe de simulare (ok, pentru VLSI, nu pentru orbite, dar nu-i prea departe, nu  ;D?). Applet-uri în schimb n-am mai scris de prin școala generală. Eu unul aș fi interesat.

Adi

Mersi mult de interes. Eu zic ca ar fi interesant. Sunt mai multe universitati in strainatate care fac astfel de appleturi.
Pagina personala: http://adrianbuzatu.ro

florin_try


Apropo de Aplet-uri educationale.

Pe website-ul http://www.falstad.com/mathphysics.html
Sunt o multime de appleturi java. Eu le-am gasit f.f. bune, cred e cel mai bun web in acest sens.

Mai mult, poti descarca si codul sursa.

Adi

Mersi mult, Florin. Daca poti descarca codul sursa, poti invata mai repede cum sunt facute si atunc inveti mai repede sa faci si tu altele ...
Pagina personala: http://adrianbuzatu.ro