Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Funktion kuvaaja

Antti Laaksonen [23.12.2002 20:13:47]

#

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

tuobbi-89 [24.12.2002 12:05:48]

#

Just... en kyllä ymmärrä tuosta mitään, mutta onhan se hyvä, että koodivinkkejä tulee lisää, ja 365:n koodivinkin tavoite lähestyy... :)

liekki [21.03.2003 02:36:37]

#

No et kai sä mitenkään vois osata kun oot jossain ala-asteella.

miiro [09.11.2003 12:54:39]

#

mitä hemmetin hyötyä tosta on???

kaviaari [18.11.2003 21:19:50]

#

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

Sharph [24.03.2004 15:08:11]

#

"No et kai sä mitenkään vois osata kun oot jossain ala-asteella."
Aikamoista ikäsyrjintää täällä..

Fisher [27.03.2004 15:33:07]

#

nii...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta