![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Executar el programa m6p6.exe per conèixer el seu comportament. Veure el llistat del codi del programa, m6p6. Executar Visual Basic per editar el projecte (acabat): m6p6.vbp. Una petita animacióCreareu una petita animació d'una pilota a sobre d'una línia. Per fer moure la pilota heu de fer els següents passos repetitivament les vegades oportunes per tal de completar el moviment:
2. Esperar un cert temps depenent de la velocitat amb què voleu que es mogui la pilota. 3. Dibuixar la imatge en la nova posició. ![]() Aquest projecte el desareu a C:\VBCurs\VBActivi\m6\p6 amb el nom m6p6. Fareu un formulari com el de la figura. En ell definireu un procediment que anomenareu DibuixaFuncioSinus de manera que en carregar el formulari s'executin les instruccions PosaEscala i DibuixaFuncioSinus. Aquesta funció dibuixarà una línia a sobre de la qual rodarà la pilota. Fase de disseny de la interfície d’usuariEls objectes que intervenen en aquesta activitat, com a les anteriors, són: el formulari principal (frmAnima) amb valor "Una funció i una pilota" per a la propietat Caption i el quadre de dibuix (picDibuix).Fase de programació de respostes a eventsAfegiu les variables definides a l'activitat anterior, els procediments PosaEscala i Form_Load. Aquest últim canvia una mica el seu codi:Sub Form_Load PosaEscala DibuixaFuncioSinus End Sub El procediment DibuixaFuncioSinus està definit a continuació. Procediments d'àmbit tot el formulari Procediment que dibuixa la funció Sinus: Sub DibuixaFuncioSinus () Dim x As Single, Retar As Double picDibuix.AutoRedraw = True picDibuix.CurrentX = VertexAX picDibuix.CurrentY = Sin(VertexAX) For x = VèrtexAX To VèrtexBX + .1 Step .1 picDibuix.Line -(x, Sin(x)) Next End Sub Aquest procediment és el que dibuixa la gràfica del sinus de manera semblant a l'activitat anterior. Procediment que simula el moviment de la pilota: Sub picDibuix_Click () Dim Radi As Single Dim x As Single, Retar As Double picDibuix.AutoRedraw = False 'Radi de la pilota Radi = .25 'Color sòlid picDibuix.FillStyle = 0 'Color assignat a la pilota picDibuix.FillColor = RGB(0, 0, 255) 'Not Xor: picDibuix.DrawMode = 10 'Iteració que simula el moviment de la pilota For x = VèrtexAX To VèrtexBX Step .5 'Dibuixar la pilota picDibuix.Circle (x, Sin(x) + Radi), Radi 'El número d'iteracions varia en funció de la velocitat de l'ordinador. For Retar = 0 To 50000: Next 'Esborra la pilota picDibuix.Circle (x, Sin(x) + Radi), Radi Next x End Sub El valor de la propietat DrawMode és el causant de que en el moviment de la pilota no canvïi el color del fons. Podeu observar el seu efecte, quan executeu el programa, assignant el valor 5, per exemple, per a aquesta propietat. ![]() Aquest procediment dibuixa la pilota amb centre en el punt (x,sin(x)+Radi) fent que la pilota es desplaci horitzontalment des de VertexAX fins a VertexBX. Per simular el moviment es dibuixa la pilota en un punt, es fa una petita espera i s'esborra la mateixa pilota. Tot seguit, es dibuixa en un punt proper i es torna a fer el mateix procés. Aquestes accions són les indicades en el bloc repetitiu: For.... ExercicisPer enviar al professor tutor. (Directori C:\VBCurs\VBExerci\m6\p6 )E1. A partir del projecte realitzat en aquesta pràctica a fegiu-hi el dibuix de la funció y=cos(x). Feu que una segona pilota de color vermell passi per damunt de la segona gràfica un cop la primera pilota, la de color blau hagi fet el seu recorregut. El dibuix de la finestra principal quan estigui passant la segona pilota ha de ser semblant a: ![]() Cal enviar els següents fitxers:
Fitxer formulari m6p6e1.frm Fitxer executable m6p6e1.exe |