vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Grafik in Picturebox einlesen und mit GDI+ Polygone drüberzeichnen 
Autor: furious
Datum: 18.07.08 19:33

Private Sub Init_Needle(ByVal centerX As Long, ByVal centery As Long, ByVal _
  scaleX As Double, ByVal scaleY As Double, ByVal needletype As Integer, ByVal _
  operationmode As Integer, ByVal needlecolor As Long)
    VUm.needle.centerpos.centerX = centerX
    VUm.needle.centerpos.centery = centery
    VUm.needle.scale.scaleX = scaleX
    VUm.needle.scale.scaleY = scaleY
    VUm.needle.needletype = needletype
    VUm.needle.operationmode = operationmode
    VUm.needle.Color = needlecolor
End Sub
 
Private Sub Init_Scale(ByVal centerX As Long, ByVal centery As Long, ByVal _
  scaleX As Double, ByVal scaleY As Double, ByVal Interval As Long, ByVal _
  fontname As String, ByVal FontSize As Long, ByVal fontisbold As Boolean, _
  ByVal fontisitalic As Boolean, ByVal txtformat As String, ByVal textcolor As _
  Long)
    VUm.scale.centerpos.centerX = centerX
    VUm.scale.centerpos.centery = centery
    VUm.scale.scale.scaleX = scaleX
    VUm.scale.scale.scaleY = scaleY
    VUm.scale.Interval = Interval
End Sub
 
 
Public Sub SetNeedleValueSmooth(ByVal Value As Double)
    VUm.needle.operationmode = VUNEEDLE_MODE_SMOOTH
    VUm.needle.newvalue = Value
 
    tmrAnimationLoop.Enabled = True
End Sub
 
Public Sub SetNeedleValueDirect(ByVal Value As Double)
    VUm.needle.newvalue = Value
    VUm.needle.Value = Value
    VUm.needle.a.speed = 0
    VUm.needle.a.diff = 0
End Sub
 
Private Function GetNeedleValue() As Double
    GetNeedleValue = VUm.needle.Value
End Function
 
Public Function GetNeedleNewValue() As Double
    GetNeedleNewValue = VUm.needle.newvalue
End Function
 
 
Private Function AdjustC(ByVal c As Double) As Double
    AdjustC = (c + 90) Mod 360
End Function
 
Private Function GetXPos(ByVal c As Double, ByVal r As Double) As Double
    GetXPos = (Sin(AdjustC(c) * M_PI / 180) * r)
End Function
 
Private Function GetYPos(ByVal c As Double, ByVal r As Double) As Double
    GetYPos = (Cos(AdjustC(c) * M_PI / 180) * r)
End Function
 
Private Sub Draw()
    RefSizeX = VUm.pic.SizeX / 2
    RefSizeY = VUm.pic.SizeY / 2
 
    DrawRectangle VUm.pic.hDC, 0, 0, VUm.pic.SizeX, VUm.pic.SizeY, 1, RGB(0, 0, _
      0), RGB(0, 0, 0)
    'picGauge.Picture = LoadPicture(App.Path & "\gauge.jpg")
    DrawVUNeedle
End Sub
 
Private Function Interpolate(ByVal a1 As Double, ByVal a2 As Double, ByVal _
  value1 As Double, ByVal value2 As Double, ByVal Value As Double) As Double
 
    f1 = value1
    f2 = value2
    fc1 = a1
    fc2 = a2
    r = (((fc2 - fc1) / (f2 - f1)) * (Value - f1)) + fc1
 
    Interpolate = r
End Function
 
Private Sub DrawVUNeedle()
    Dim p1(0 To 25) As POINTAPI
    Dim p2(0 To 25) As POINTAPI
 
    angle = Interpolate(VUm.ticks.minpos_angle, VUm.ticks.maxpos_angle, _
      VUm.ticks.min_value, VUm.ticks.max_value, VUm.needle.Value)
 
 
        If VUm.needle.needletype = 4 Then   ' sharp
            totalpoints = 5
            p1(0).x = VUm.needle.centerpos.centerX + GetXPos(angle - 2, _
              RefSizeX * VUm.needle.scale.scaleX * -0.2)
.....
            p1(4).y = VUm.needle.centerpos.centery + GetYPos(angle + 90, _
              RefSizeY * VUm.needle.scale.scaleY * 0.02)
        End If
 
        For i = 0 To totalpoints        ' shift for shadow in p2
            p2(i).x = p1(i).x + 3
            p2(i).y = p1(i).y + 3
        Next i
 
        DrawFilledPolygon VUm.pic.hDC, totalpoints, p1(), 1, VUm.needle.Color, _
          VUm.needle.Color
 
End Sub
 
Private Function log10(ByVal x As Double) As Double
    If x = 0 Then log10 = 0 Else log10 = Log(x) / Log(10)
End Function
0
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Grafik in Picturebox einlesen und mit GDI+ Polygone drüberze...1.650furious18.07.08 11:12
Re: Grafik in Picturebox einlesen und mit GDI+ Polygone drüb...984Zardoz18.07.08 16:53
Re: Grafik in Picturebox einlesen und mit GDI+ Polygone drüb...902furious18.07.08 17:41
Re: Grafik in Picturebox einlesen und mit GDI+ Polygone drüb...901VBStein18.07.08 17:48
Re: Grafik in Picturebox einlesen und mit GDI+ Polygone drüb...914Zardoz18.07.08 18:08
Re: Grafik in Picturebox einlesen und mit GDI+ Polygone drüb...947furious18.07.08 19:32
Re: Grafik in Picturebox einlesen und mit GDI+ Polygone drüb...994furious18.07.08 19:33
Re: Grafik in Picturebox einlesen und mit GDI+ Polygone drüb...854furious23.07.08 08:21
Re: Grafik in Picturebox einlesen und mit GDI+ Polygone drüb...899furious18.08.08 14:40

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel