mä haluaisin tuoda kysyä uudestaa:
miten saan tehtyä mittarin joka samalla tyylillä kuin autossa (ei digitaali)
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 SubKiide!!
Aihe on jo aika vanha, joten et voi enää vastata siihen.