Trasarea funcții în mediul de bază vizual

Sarcina tabelării funcției și construirea programului lor este una dintre sarcinile principale în procesul de soluții de ecuații diferențiale ordinare. Considerăm că această problemă mai detaliat.

Se trasează funcția y = sin (x) în intervalul [a, b]. Etapa tabulare luată egală cu h.

Pentru a construi graficul funcției în mediul Visual Basic, convenabil de a utiliza unele componente grafice.

Figura 9 - Localizarea componentelor principale în fereastra General

K

Trasarea funcții în mediul de bază vizual
omponentPicture Box () este folosit ca un container pentru complot. Este o matrice de puncte (pixeli), mai mult decât atât este posibil să se controleze culoarea fiecărui punct. Coordonatele fiecărui punct definit de o pereche de numere întregi - numărul său de secvență în secvența numărul rând X și rândul în Y. Astfel, obiect coordonatele colțul din stânga sus al componentei (0, 0). Numărul de pixeli pe linie și numărul de linii determinate de mărimea componentei.

Figura 10 - Obiect Coordonate PictureBox

Fig. 10 arată dispunerea axelor și coordonatele punctelor de colț ale obiectului.

Linie () componentă este folosită pentru construcția axelor și graficul de segmente rupte.

Esența plotarii este acela de a se asigura că funcția trebuie să fie prezentată într-un tabel (cataloga), iar apoi notate pe punctele șablon de program și de a le conecta unele cu altele.

reprezentarea grafică a algoritmului funcție este prezentată în Figura 12. Algoritmul poate fi modificat. În special, unele proceduri pot fi combinate, iar procedura poate fi modificată, în unele cazuri.

Luați în considerare algoritmul mai detaliat.

Înainte de punerea în aplicare a algoritmului trebuie să fie descrise funcția podprogrammu- la complot. Acest lucru este necesar pentru a facilita modificarea programului. Dacă este necesar să se pune la cale o altă funcție, aceasta va avea nevoie doar de a schimba rutina.

Chiar înainte de complot necesitatea de a crea și edita formă. formă EXEMPLU proiectare prezentată în Figura 11. în forma necesară pentru a asigura componente pentru introducerea de date, o componentă pentru tabele de imprimare, un buton de comandă, un container pentru grafica introducerea (picturebox). În interiorul picturebox este necesar să se atragă axe de coordonate de linii drepte si pozitionati eticheta pentru limitele segmentului ce prezintă valori ale argumentul de funcție și funcții extreme pe segmentul.

introducerea datelor inițiale se realizează în programul dat, atunci când faceți clic pe butonul de comandă. Foarte des, introducerea de date este implementat folosind componenta TextBox.

Funcția Procedura tabelare este efectuată în mod convenabil într-o buclă cu un parametru cunoscut ca număr de puncte din grafic sunt numărate. este necesar să se precizeze numărul de rânduri din tabel înainte de efectuarea procedurii.

Numărul de rânduri se calculează cu formula: k = n + 2, unde k - numărul de rânduri și n - numărul de segmente ale intabulare. Numărul de linii să fie mai mare decât numărul de segmente 2, deoarece este necesar să se ia în considerare punctul inițial (zero) și șir pentru a înregistra coloane pagina antet.

Însăși totalizarea procedură poate combina două lucruri - intabulare si calculul extreme. Următoarea soluție este prezentată în Listarea programului risunke13.

Principala dificultate este reprezentarea grafică trecerea de la valoarea matematică a funcției și argumentul pentru coordonatele de ecran utilizate pentru complot. În rezolvarea acestei probleme ar trebui să ia în considerare direcția opusă a axelor pe un grafic matematic și PictureBox obiect și nevoia de scalare a imaginii.

Graficul factorilor de scalare calculat după cum urmează:

Trasarea funcții în mediul de bază vizual
,

în cazul în care kx - factorul de scalare pe axa x,

NPX - PictureBox obiectiv numarul de pixeli alocat pentru a parcelei pe orizontală,

a - valoarea inițială a funcției intervalului argument

b - valoarea finală a argumentului segmentului.

Trasarea funcții în mediul de bază vizual
,

în cazul în care Ky - scalarea axa coeficientul OY,

NPY - numărul PictureBox de pixeli ai obiectului care urmează să fie alocate pentru trasarea verticală

min - valoarea minimă a funcției,

max - valoarea maximă a funcției.

Traducere coordonate matematice ale punctului curent în ecranul produs de formulele:

zx = Round (ox + (x (i) - a) * kx),

zy = Round (oy - (y (i) - Min) * ky),

în cazul în care zx, ZY - coordonatele ecran ale punctului curent,

ox, oy - coordonatele punctului de intersecție al axelor din componenta picturebox,

x (i), y (i) - coordonatele matematice ale punctului curent,

kx, ky - factori de scalare.

Formula de calcul ecran coordonatele de contact ale punctului de curent este utilizat „minus“ semn pentru a ține cont de direcțiile opuse ale axelor (pe ecran și în grafic).

Listarea funcției complot Programul este prezentată în figura 13.

Exemple de forme cu rezultatele programului de lucru pentru orice date brute prezentate în figurile 14 și 15.

Trasarea funcții în mediul de bază vizual

Figura 11 - Un exemplu al dezvoltării formelor

Trasarea funcții în mediul de bază vizual

Figura 12 - Un algoritm pentru construirea graficului

Rem Descriere variabile

x Dim () Ca unic, y () Ca Single

Privat un regim single

b privat, ca unică

Funcția Descriere Rem a cărei grafic este necesar pentru a construi

Funcția f (t Ca Single) Ca Single

Private Sub Command1_Click ()

Rem date de intrare

Rem Calculul secțiunilor de numărare a buletinelor

n = Round ((b - a) / h)

Rem Pereoopredelenie matrice dinamice

Rem Calcularea numărului de rânduri în tabelul

MSFlexGrid1.Rows = n + 2

Rem tabel antet Semnătură

MSFlexGrid1.TextMatrix (0, 0) = "x"

MSFlexGrid1.TextMatrix (0, 1) = "y"

matrice Rem Formirovaanie și căutare pentru Extrema

Dacă y (i)> Max Apoi Max = y (i)

Dacă y (i)

MSFlexGrid1.TextMatrix (i + 1, 0) = Str (x (i))

MSFlexGrid1.TextMatrix (i + 1, 1) = Str (y (i))

Fotografie: rem curate

Rem Calcularea factorilor de scalare

kx = (Picture1.Width - 1200) / (b - a)

ky = (Picture1.Height - 1000) / (Max - Min)

Valorile Extrema rem Record de pe modelul de diagramă

Coordonatele ecran de calcul Rem și funcții plotare

Pentru i = 0 la n - 1

z1 = Round (720 + (x (i) - a) * kx)

z2 = Round (5400 - (y (i) - Min) * ky)

z3 = Round (720 + (x (i + 1) - a) * kx)

z4 = Round (5400 - (y (i + 1) - Min) * ky)

Picture1.Line (z1, z2) - (z3, z4)

Figura 13 - Listarea program de program de construcție

Trasarea funcții în mediul de bază vizual

Figura 14 - Rezultatul programului

Trasarea funcții în mediul de bază vizual

Figura 15 - Rezultatul programului