Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: 360*

petrinm [22.09.2003 15:52:15]

#

mä haluaisin tuoda kysyä uudestaa:

miten saan tehtyä mittarin joka samalla tyylillä kuin autossa (ei digitaali)

Antti Laaksonen [22.09.2003 21:21:01]

#

Yleensä saman asian kysyminen uudestaan ei tuo tulosta, mutta tämä poikkeus vahvistaa säännön. Seuraavassa on PiirraNopeusMittari-aliohjelma sekä sen käyttöesimerkki. Toimii VB6:lla ja vähäisin muutoksin vanhemmillakin.

Private Const PII = 3.1415926

'piirtää nopeusmittarin
'   x       = aloituspaikan x-koordinaatti
'   y       = aloituspaikan y-koordinaatti
'   l       = mittarin leveys
'   k       = mittarin korkeus
'   maksimi = mittarin asteikon maksimikohta
'   kohta   = mittarin viisarin tämänhetkinen kohta
Sub PiirraNopeusMittari(x As Integer, y As Integer, l As Integer, k As Integer, maksimi As Integer, kohta As Integer)
    Dim i As Single, j As Integer
    'piirretään alareunan vaakaviiva
    Line (x, y + k)-(x + l, y + k), 0
    'piirretään harmaat viivat
    For i = PII / 2 To PII + PII / 2 Step 0.1
        Line ((x + l / 2) + Sin(i) * (l / 2), (y + k) + Cos(i) * k)-((x + l / 2) + Sin(i) * (l / 2) * 0.95, (y + k) + Cos(i) * k * 0.95), RGB(127, 127, 127)
    Next
    'piirretään kaari
    For i = PII / 2 To PII + PII / 2 Step 0.01
        PSet ((x + l / 2) + Sin(i) * (l / 2), (y + k) + Cos(i) * k), 0
    Next
    'kirjoitetaan nopeudet
    For j = 0 To maksimi Step maksimi / 14
        i = PII / 2 + PII + (j / maksimi) * PII
        CurrentX = (x + l / 2) + Sin(i) * (l / 2) * 1.1 - TextWidth(j) / 2 - 4
        CurrentY = (y + k) + Cos(i + PII) * k * 1.1 - TextHeight(j) / 2
        Print Int(j / 10 + 1) * 10
    Next
    'piirretään "viisari"
    i = PII / 2 + PII + (kohta / maksimi) * PII
    Line (x + l / 2, y + k)-((x + l / 2) + Sin(i) * (l / 2), (y + k) + Cos(i + PII) * k), RGB(255, 0, 0)
End Sub

Private Sub Form_Click()
    Dim i As Single
    AutoRedraw = True 'estää vilkkumisen
    ScaleMode = 3 'pikselit
    '"nopeuden kiihtyminen 60:sta 120:een km/h"
    For i = 60 To 120 Step 0.1
        Line (50, 50)-Step(220, 100), BackColor, BF
        PiirraNopeusMittari 50, 50, 220, 100, 240, (i)
        DoEvents
    Next
End Sub

petrinm [23.09.2003 17:06:46]

#

Kiide!!

Vastaus

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

Tietoa sivustosta