Tämä VB-ohjelma piirtää melko tyylikkään kuvaajan yhdestä tai usemmasta funktiosta. Koodista löytyy mm. asteikon ja ruudukon askeleen määrittäminen sekä koordinaatit, sitä vastoin leikkauspisteet, nollakohdat ym. jäävät koodin kehittäjän huoleksi :)
Funktiot kirjoitetaan suoraan koodiin, joten VB laskee funktiot itse ja varmasti oikein. Tämä lyhentää oleellisesti koodin pituutta, mutta toisaalta funktioita ei voi määritellä enää ohjelman käynnistyttyä. Lopullinen ohjelma vaatinee siksi oman funktion ratkaisijan.
'kuvion koko ja ruudukon tarkkuus
Const MIN = -10
Const MAX = 10
Const ASKEL = 1
Private Sub Form_Activate()
Piirra
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF5 Then Piirra
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
'näytetään koordinaatit otsikkopalkissa
Caption = "(" & Round(x, 3) & "; " & Round(y, 3) & ")"
End Sub
Sub Piirra()
'tyhjennetään ikkuna ja määrätään sen piirtokoko
Cls
ScaleLeft = MIN
ScaleTop = MAX
ScaleWidth = MAX + MAX
ScaleHeight = MIN * 2
'piirretään ruudukko
Dim i As Single
For i = MIN To MAX Step ASKEL
Line (MIN, i)-(MAX, i), QBColor(7)
Line (i, MIN)-(i, MAX), QBColor(7)
Next
Line (MIN, 0)-(MAX, 0), QBColor(0)
Line (0, MIN)-(0, MAX), QBColor(0)
'muuttujat kuvaajien piirtoon
Dim x As Single
Dim y1 As Single, y2 As Single
'piirretään kuvaajat
On Error Resume Next
For x = MIN To MAX Step (MAX - MIN) / Width
y1 = x ^ 3 + 2 + x ^ 2 - x + 3 'kuvaaja 1
PSet (x, y1), QBColor(1)
Err = 0
y2 = x ^ 2 - 5 * x 'kuvaaja 2
PSet (x, y2), QBColor(2)
Err = 0
Next
End Sub
Private Sub Form_Resize()
Piirra
End SubJust... en kyllä ymmärrä tuosta mitään, mutta onhan se hyvä, että koodivinkkejä tulee lisää, ja 365:n koodivinkin tavoite lähestyy... :)
No et kai sä mitenkään vois osata kun oot jossain ala-asteella.
mitä hemmetin hyötyä tosta on???
Noh tolla piirretään funktiosta kuvaaja esim.
sin x*5 tekee simppeliä sinikäyrrä... jos et tajua matematiikkaa et tajua tätäkään :P
"No et kai sä mitenkään vois osata kun oot jossain ala-asteella."
Aikamoista ikäsyrjintää täällä..
nii...
Aihe on jo aika vanha, joten et voi enää vastata siihen.