Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: Animazioni in c++

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    10

    [C++] Animazioni in c++

    Salve sono nuovo di questo forum e mi sono iscritto proprio perchè questo mi sembra il luogo adatto dove poter trovare la risposta a molte mie domande. Mi scuso subito sul basso livello delle mie domande ma mi sono da poco avvicinato alla programmazione.
    C'è un'aspetto della programmazione che + di tutti mi affascina ed è proprio quello legato all'animazione. Sono venuto a conoscenza di gruppi che da molti anni si muovono su questo fronte più in particolare sul fronte dei demo. Un demo è un programma solitamente di dimensioni ridotte che se lanciato genera su schermo in real time delle animazioni spesso mozzafiato. Queste animazioni sono tutte scritte in linguaggio di programmazione e sono generate da formule matematiche spesso complicatissime. Per farvi un'idea scaricate questo pdf http://www.dvara.net/HK/HK-Writes/ScenaDemo.pdf .
    la cosa che più mi blokka è la difficolta che ho in programmi come c++ a generare anche figure semplici in movimento. Ho programmato alcune animazioni in darkbasic un surrogato del basic fatto apposta per la creazione dei videogiochi utilizzando formule molto semplici che però si tramutavano in animazioni soddisfacenti.In questo caso come anche credo nel basic far apparire una stupidissima animazione era cosa assai facile. La domanda che vi pongo a questo punto è : se in c++ volessi creare su schermo un'animazione di un punto che si muove su schermo che cosa dovrei fare??? Dovrei includere delle librerie ? (L'animazione è molto semplice ma so che superato il primo scoglio il resto sarà una passeggiata )

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305
    Questa è la mia esperienza da autodidatta:
    dopo varie esperienze con i vari tool di programmazzuione sono arrivato alla scelta che per me risulta la migliore:

    Strumenti di sviluppo:
    tool di sviluppo vc6++
    componenti: directx 8.01 / direct3d
    tool grafca 3d StudioMax 4.0

    Tutorial:
    Directx
    Direct3d
    c/c++
    grafica
    calcoli matematici applicati alle directx e schede grafiche moderne

    Questo è quello che si può fare:
    la mia demo o [motore grafico] quì sotto
    http://www.twork.it/work/box/tWgame_utenti.zip


    Ho studiato con tc++, djgpp e allegro ma se dai uno sguardo alla demo penso che riuscire ad ottenere risultati migliori è difficile. Per questo motivo dopo varie esperienze ho lasciato tra l'altro anche le openGL per concentrarmi su quello scritto sopra.

    buon studio...........

    tutto quello che ti serve lo trovi in rete, in italiano solo introduzioni il resto approfondito in inglese, per questo sto facendo un tutorial in italiano per tutti quelli che come me hanno avuto difficoltà a reperire info su questo argomento.
    Infatti scrivere un tutorial non è una cosa facile......... cioè per chi lo scrive è tutto facile ma non l'ho è per chi lo legge.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    10
    Interessante interessante. Cmq ciò di cui tu mi parli è già mille anni luce avanti rispetto a quello che vorrei sapere. Ad esempio se io avessi dello pseudo-codice tipo :

    x=y;
    y++;
    print dot(x,y);
    loop

    in pratica x e y sono le coordinate del mio pixel che voglio far muovere su schermo esso sui muoverà dalla parte in alto a sinistra dello schermo e seguendo una linea retta finirà nella parte in basso a destra.
    Ora dato questo pseudo codice scritto tra l'altro nel peggiore dei modi come andrebbe riportato in c++ ? In quale contesto andrebbe scritto? In Basic sono poche linee di codice possibile che in c++ devo richiamare miglioni di librerie e scrivere un codice complicatissimo?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305
    2 domanda:

    - che tool di programmazione hai installato sul tuo pc?
    - che linguaggio di programmazione conosci bene?

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da joooohn
    In Basic sono poche linee di codice possibile che in c++ devo richiamare miglioni di librerie e scrivere un codice complicatissimo?
    in c devi usare una libreria esterna come openGL (o directx che non conosco); far muovere un punto sullo schermo con opengl non è affatto complicato ed è del tutto simile allo pseudocodice che hai scritto; ad ongi modo non penso che per fare grafica 3d possa tu possa isare qlcosa di diverso dal c. On line ci sono molti manuali e tutorial (almeno su opengl), prima pero devi scegliere:

    che ambiente di programmazione usare (visualc, mingw, borlandc++);
    quale libreria usare.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    10
    Mettiamo che io desideri usare Opengl con conpilatore borland c++ qualcuno di voi sarebbe in grado di scrivermi il codice che implementando le giuste librerie mi fa muovere questo pixel sullo schermo. Pensavo che fosse una cosa semplice ma mi accorgo che in realtà le problematiche sono molteplici e di diversa natura. Il massimo sarebbe se voi foste in grado di riportarmi qui sul forum un codice compilabile con il borland che mi crea questa semplicissima animazione. Se qualkuno di voi ne è capace gliene sarei grato per tutta la vita e sarei disposto a fare qualsiasi cosa per contraccambiare questo immenso favore!!!
    vi prego aiutatemi!!!!!

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Il compilatore della Borland non lo uso per cui non ti so fare l'esempio, comunque la diefferenza sta solo nelle libreire che devi includere per far funzionare il programma, il codice non penso che cambi. AD ogni modo puoi guardare sul sito

    http://nehe.gamedev.net/lesson.asp?index=01

    dove trovi una quarantina di lezioni su OpenGl, con alla fine allegati i file del codice per vaire versioni di compilatori, compreso il borland.

    Qui:

    http://www.multiplayer.it/itaprogami...he/default.asp

    c'è la traduzione in italiano delle lezioni, ma non le varie versioni per i vari compilatori.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    10
    Grazie anx questi tutorial sono molto utili ho già iniziato a studiarmeli per bene. A questo punto però vorrei cmq lanciare una proposta ai lettori di questo forum. C'è qualkuno in grado di riportare qui poke righe di codice in c++ o anche in visual c++ che siano compilabili e generino l'animazione di cui parlavo. Ossia il codice è autosufficiente e se mandato in pasto al compilatore genera questa animazione. C'è qualkuno così bravo, visto che l'argomento non mi sembra poi alla portata di tutti

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    10
    Forza regà non pensavo di aver posto un quesito così difficile!!!

  10. #10
    Utente di HTML.it L'avatar di gokan
    Registrato dal
    Feb 2003
    Messaggi
    262
    Giusto perchè ultimamente giochicchio con OpenGL e Glut, ti faccio l'esempio del codice necessario a creare una finestra, disegnare un triangolo ed un quadrato in rotazione.
    codice:
    # include <windows.h>
    # include <stdlib.h>
    # include <gl/glut.h>
    # include <gl/gl.h>
    # include <gl/glu.h>
    
    GLfloat	rtri=0;				    
    GLfloat	rquad=0;
    
    void aggiorna (int w, int h)
    {
    glViewport (0, 0, (GLsizei) w, (GLsizei) h);
    glMatrixMode (GL_PROJECTION);
    glLoadIdentity ();
    gluPerspective(100.0, (GLfloat) w/(GLfloat) h, 0.10, 100.0);
    glMatrixMode(GL_MODELVIEW);
    } 
    
    void rotazione(void)
    {
    	rtri+=0.2f;
        rquad+=0.15f;
    	glutPostRedisplay();
    }
    void disegna (void)
    {
    	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	
    		
    	glLoadIdentity();
    	
    	gluLookAt ( 0.0, 0.0, 1.0,
                    0.0, 0.0, -1.0,
                    0.0, 1.0, 0.0);
    	glPushMatrix();
    
        glTranslatef(-0.5f,0.0f,-1.0f);  // Muove a sinistra di 1.5 unità e dentro lo schermo di 1.0 unità
        glRotatef(rtri,0.0f,1.0f,0.0f);						// Ruota il triangolo sull'asse Y ( NUOVA )
    	glBegin(GL_TRIANGLES); // Disegna usando i triangoli
    	    glColor3f(0.0,1.0,0.0);             
           glVertex3f( 0.0f, 0.4f, 0.0f); 
    	    glColor3f(1.0f,0.0f,0.0f); 
           glVertex3f(-0.4f,-0.4f, 0.0f); 
            glColor3f(0.0f,0.0f,1.0f); 
           glVertex3f( 0.4f,-0.4f, 0.0f); 
        glEnd(); // Finisce di disegnare il triangolo
    
    	glPopMatrix();
    
         glPushMatrix();
    
    	glTranslatef(0.4f,0.0f,0.0f); // Muove a destra di 1 unità
        glRotatef(rquad,0.0f,1.0f,0.0f);			// Ruota il quadrato sull'asse X ( NUOVA )
        
    	glBegin(GL_QUADS); // Disegna un quadrato
          glVertex3f(-0.4f, 0.4f, 0.0f); // Superiore sinistro
          glVertex3f( 0.4f, 0.4f, 0.0f); // Superiore destro
          glVertex3f( 0.4f,-0.4f, 0.0f); // Inferiore destro
          glVertex3f(-0.4f,-0.4f, 0.0f); // Inferiore sinistro
        glEnd(); // Finisce di disegnare il quadrato
    
    	glPopMatrix();
    
    glutSwapBuffers();
    
    }
    int main(int argc, char** argv)
    {
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE| GLUT_RGB);
    glutInitWindowSize(800,600);
    glutInitWindowPosition(100,150);
    glutCreateWindow("Prove con OpenGL");
    glutDisplayFunc(disegna);
    glutIdleFunc(rotazione); //richiama l'animazione, facendo ruotare le figure
    glutReshapeFunc(aggiorna);
    glutMainLoop();
    return 0;
    }
    Tutto questo grazie anche all'aiuto del buon anx

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.