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 Sub
Just... 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.