Pràctica optativaExecutar el programa m6p2.exe per conèixer el seu comportament. Veure el llistat del codi del programa, m6p2. Executar Visual Basic per editar el projecte (acabat): m6p2.vbp. Les instruccions per fer un quadre de dibuix o un formulari a midaSi us fixeu en la figura anterior, veureu que un sistema d'eixos de coordenades cartesianes es pot definir per les coordenades del vèrtex A i del vèrtex B. El mètode Scale està associat als objectes en els que podeu dibuixar, té com a paràmetres les coordenades dels vèrtex A i B i serveix per definir el sistema de coordenades que sigui adient al problema que esteu treballant: En aquesta activitat creareu un formulari i un quadre de dibuix. En aquest quadre de dibuix, que conté el quadrat més petit, definireu un sistema de coordenades en mil.límetres i hi posareu l'origen de coordenades al mig del quadre. Les direccions dels eixos seran les normals, d'esquerra a dreta l'eix X i d'avall cap amunt l'eix Y. També creareu en el formulari els controls necessaris per poder canviar l'escala, canviant els vèrtex A i B, i veure l'efecte que aquests canvis produeixen en una figura dibuixada dins del quadre de dibuix. Aquest projecte el desareu a C:\VBCurs\VBActivi\m6\p2 amb el nom m6p2. Fase de disseny de la interfície d’usuariEls objectes principals d'aquest formulari son els següents:
Els altres objectes que falten són eines: etiqueta, forma, línia que deixem al lector que les col.loqui amb les propietats pertinents. Fase de programació de respostes a eventsProcediments d'àmbit a tot el formulariEl procediment AplicaEscala, d'àmbit tot el formulari i que canvia l'escala del dibuix, rep quatre paràmetres, que són les coordenades dels dos punts VèrtexA i VèrtexB: Sub AplicaEscala (XA As Single, YA As Single, XB As Single, YB As Single) PicCoordenades.Scale (XA, YA)-(XB, YB) lblMidaAmple.Caption = XB - XA lblMidaAlt.Caption = YA - YB txtXA = Str(Int(XA)) txtYA = Str(Int(YA)) txtXB = Str(Int(XB)) txtYB = Str(Int(YB)) End Sub Aquest procediment canvia l'escala i estableix els valors de les coordenades dels punts A i B a les caixes de text. Tema: Scale Subtema: Scale Method Mètodes associats a l'event Load Per al formulari frmEixos: Sub Form_Load () Dim VèrtexAX As Single Dim VèrtexAY As Single Dim VèrtexBX As Single Dim VèrtexBY As Single Dim MidaX As Single Dim MidaY As Single Dim ConversióTwipsMilímetres As Single ConversióTwipsMilímetres = 10 / 567 MidaX = picCoordenades.Width * ConversióTwipsMilímetres MidaY = picCoordenades.Height * ConversióTwipsMilímetres VèrtexAX = -MidaX / 2 VèrtexAY = MidaY / 2 VèrtexBX = MidaX / 2 VèrtexBY = -MidaY / 2 AplicaEscala VèrtexAX, VèrtexAY, VèrtexBX, VèrtexBY End Sub Després d'executar el procediment AplicaEscala, MidaX i MidaY són les mides del quadre del dibuix en mil·límetres. Encara que en pantalla això no sigui molt real perquè la pantalla pot ser més o menys grossa, si imprimiu el formulari i mesureu les mides del quadrat de dibuix, en el paper veureu que coincideixen exactament amb les calculades. Mètodes associats a l'event Click El procediment associat al botó cmdDibuixa és el següent: Sub cmdDibuixa_Click () Dim i As Integer PicCoordenades.Line (-10, -10)-(10, 10), QBColor(5), BF For i = 0 To 100 Step 10 PicCoordenades.PSet (i, 0), QBColor(5) PicCoordenades.PSet (0, i), QBColor(5) Next End Sub En aquest procediment dibuixeu un quadrat de color 5 i de costat 20 unitats. També dibuixeu 11 punts a sobre de l'eix X i altres onze a sobre de l'eix Y, separats 10 unitats entre ells. Fixeu-vos que són unitats que depenen de l'escala. Si l'escala és en mil.límetres les unitats de mesura d'aquests dibuixos seran mil·límetres, però en el moment que canvieu l'escala deixaran de ser mil·límetres. Per als botons de comandament: Ens queden tres procediments de resposta als altres tres botons de comandament que són: Botó Esborrar: Sub cmdEsborra_Click () PicCoordenades.Cls End Sub Botó EscalaReal: Sub cmdEscalaReal_Click () Form_Load End Sub Botó Escala: Sub cmdAplicaEscala_Click () AplicaEscala Val(txtXA), Val(txtYA), Val(txtXB), Val(txtYB) End Sub Quan executeu aquest programa heu de prémer el botó Dibuixa i observareu el quadrat de costat 20 en mil·límetres. Canvieu l'escala, fent que els valors dels punts A i B siguin els següents: VèrtexA(-15,15) i VèrtexB(15,-15). Premeu els botons Esborra, AplicaEscala i Dibuixa. El quadrat és molt més gros ja que, encara que és un quadrat del mateix costat, 20 unitats, aquestes unitats no són mil·límetres perquè l'amplada del quadrat de dibuix és ara 30 i l'alçada també. Podeu fer ús de les següents escales i veure l'efecte que produeixen en els dibuixos del quadre de dibuix.
Exercicis optatiusSi en feu algun el podeu enviar al professor tutor.(Directori C:\VBCurs\VBExerci\m6\p2 ) E1. Agafeu un paper quadriculat. Dibuixa a sobre un rectangle de les proporcions de la figura 1. Dibuixeu dins alguna cosa com la de la figura. Si poseu l'origen en el vèrtex inferior esquerra, calculeu quines són les coordenades dels vèrtex que serveixen per definir un sistema d'eixos en Visual Basic. Calculeu les coordenades dels punts del dibuix. Feu el programa. Cal enviar els següents fitxers:
Fitxer formulari m6p2e1.frm Fitxer executable m6p2e1.exe E2. La figura següent és un tauler d'escacs. Heu de preparar una escala en la qual l'origen sigui, igual que a l'exercici 1, el vèrtex inferior esquerra. El quadrat de dibuix tindrà 8 x 8 unitats. Ara heu de fer files de rectangles, amb el mètode Line i el paràmetre BF. Podeu fer servir la instrucció For... next.... Cal enviar els següents fitxers:
Fitxer formulari m6p2e2.frm Fitxer executable m6p2e2.exe |