Rubrik: Grafik und Font · Grafische Effekte | VB-Versionen: VB4, VB5, VB6 | 17.02.01 |
Tacho-Simulation Dieser Tipp zeigt, wie man einen grafischen Tacho mit bewegbarer Tachonadel simulieren kann. | ||
Autor: Heinz Prelle | Bewertung: | Views: 31.385 |
www.visual-basic5.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Unser heutiger Tipp demonstriert, wie man einen Tacho mit regelbarer Tachonadel simuliert. Zum Bewegen der Tachonadel dient in unserem Beispiel ein vertikales Bildlauf-Element (Scrollbalken). Das Anzeigen der Tachonadel erfolgt über die öffentliche Prozedur fTacho. Für die optische Darstellung des Tachos dient ein JPG-Bild. |
' Beispiel : Tachosimulation Const PI = 3.141592654 Const GRAD_TO_RADIANS = PI / 180 ' Tachonadel anzeigen Public Sub fTacho(Pic As Control, dMinStart As Double, _ dMaxStart As Double, dMin As Double, dMax As Double, _ iNeedleWidth As Integer, sNeedleColor As String, _ dNeedleLength As Double, dValue As Double) Dim iPicX As Integer Dim iPicY As Integer Dim minDegree As Integer Dim dRadius1 As Double Dim dRadius2 As Double Dim vNLength As Integer Dim vRet As Single Dim vRRet As Double minDegree = 0 iPicX = Pic.Width / 2 iPicY = Pic.Height / 2 vRet = IIf(iPicX > iPicY, iPicY, iPicX) - 5 vNLength = vRet * dNeedleLength dRadius1 = dMaxStart - dMinStart dRadius2 = dMax - dMin vRRet = ((dRadius2 / dRadius1) * dValue) + dMin vRetSin = Sin((minDegree - vRRet * 6) * GRAD_TO_RADIANS) _ * (vRet - vNLength) + iPicX vRetCos = Cos((minDegree - vRRet * 6) * GRAD_TO_RADIANS) _ * (vRet - vNLength) + iPicY vOldColor = vbBlack Pic.ForeColor = sNeedleColor Pic.DrawWidth = iNeedleWidth Pic.Cls Pic.Line (iPicX, iPicY)-(vRetSin, vRetCos) Pic.ForeColor = vOldColor End Sub ' Für unser Beispiel: ' Bewegen der Tachonadel über den vertikalen Scrollbalken Private Sub Form_Load() VScroll1.Value = 0 End Sub Private Sub VScroll1_Change() fTacho Picture1, 0, 120, 8, 52, 2, vbBlack, 0.1, _ VScroll1.Value End Sub
Am besten ist es, wenn Sie sich das kleine Anwendungsbeispiel einmal anschauen.