Was VB angeht hab ich mich entweder ziemlich dämlich angestellt oder es ist echt nicht einfach ein Image zu drehen (Kompassscheibe).
Habe mir einfach aus diesesm Programm ( http://vb-fun.de/cgi-bin/loadframe.p.../tip0154.shtml ) alles Rausgesucht was ich brauchte.
Hier mal der Code wenn es dich interessiert :
Code:
Imports System.Drawing.Imaging
Public Class Form1
'Deklarationen
Dim Buffer As Bitmap
Dim graph As Graphics
Dim Winkel As String = 0
Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
SerialPort1.Open()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Buffer = New Bitmap(PictureBox1.Width, PictureBox1.Height, PixelFormat.Format32bppPArgb) 'Dem "Buffer"-Bild das richtige Format zuordnen
graph = Graphics.FromImage(Buffer) 'Die Graphics-Klasse "graph" mit dem Bild Buffer verbinden
Call DreheBild() 'Bild aktualisieren
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If SerialPort1.BytesToRead > 0 Then
Winkel = 0
Do
Winkel = Winkel & Chr(SerialPort1.ReadByte)
If SerialPort1.BytesToRead = 0 Then
lblWinkel.Text = CInt(Winkel / 10) & "°"
Call DreheBild()
Exit Do
End If
Loop
End If
End Sub
Private Sub DreheBild()
graph.Clear(Color.Transparent) 'Das Bild löschen
graph.ResetTransform() 'Den Mittelpunkt und die Rotation löschen
graph.TranslateTransform(PictureBox1.Width / 2, PictureBox1.Height / 2, Drawing2D.MatrixOrder.Append) 'Setzen des Rotiermittelpunktes
graph.RotateTransform(CInt(Winkel) / 10 * (-1)) 'Rotation auf die Matrix ausführen
graph.DrawImage(PictureBox1.Image, New Rectangle(-PictureBox1.Width / 2, -PictureBox1.Height / 2, PictureBox1.Width, PictureBox1.Height)) 'Bild mit angegebenem Drehwinkel in das Buffer-Bild kopieren
Vorschau.Image = Buffer 'Das Buffer-Image auf die PictureBox übertragen
End Sub
End Class
Was die Himmelsrichtung angeht so sende ich einfach die Abweichung zu Norden als Winkel.
Zb 45,2° als 452 und teile später durch 10.
Werde erst mal jedes Sensorprogramm einezeln schreiben und später dann zusammen setzen.
Dann werde ich mit "Headern" arbeiten, also zb HR452.
Werde dann in VB erst mal die ersten beiden Zeichen Auswerten HR = Himmelsrichtung und dann dem entsprechend die folgenden Zeichen auswerten.[/quote]
Lesezeichen