Hallo,
Ich bin gerade dabei eine Art Gauge-Control zu erstellen (Anhang) und komme bei der Berechnung der Nadel-Position nicht (mehr) wirklich weiter.
Mein Control besitzt die Eigenschaft Value (0-100).
Die Nadel besteht aus 3 Punkten, die mittels DrawLines() verbunden werden:
Nun Zum Problem:
Wenn die Value = 50% ist, dann funktioniert alles perfekt, wenn aber die Value z.B 90% ist, dann wird die Nadel immer Dünner.
Ich habe es schon mit Matrix-Transformation usw. versucht, aber irgendwie lässt sich das Problem nicht beheben.
Kennt jmd. einen einen Lösungsansatz/Lösung?
Ich nehme es euch nicht übel, wenn ihr das Problem nicht versteht, ich habe absolut keine Ahnung wie ich den ganzen Gedankensalat in Worte packen soll
Ich denke aber die Bilder helfen etwas.
Liebe Grüße
Ich bin gerade dabei eine Art Gauge-Control zu erstellen (Anhang) und komme bei der Berechnung der Nadel-Position nicht (mehr) wirklich weiter.
Mein Control besitzt die Eigenschaft Value (0-100).
Die Nadel besteht aus 3 Punkten, die mittels DrawLines() verbunden werden:
VB.NET-Quellcode
- 'M (PointF) ist der Mittelpunkt des Controls
- 'KnobRadius ist der Radius (Single) des "Mittelpunktkreises"
- 'GetPointAt ist eine Funktion um den Punkt eines Winkels an einem Kreis zu bekommen.
- Dim Vertices(3) As PointF
- Vertices(0) = New PointF(M.X - KnobRadius, M.Y)
- Vertices(1) = New PointF(M.X + KnobRadius, M.Y)
- Vertices(2) = GetPointAt(Angle, B)
- Vertices(3) = Vertices(0)
- Dim Pth As New GraphicsPath
- Pth.StartFigure()
- Pth.AddLines(Vertices)
- G.DrawPath(Pens.Silver, Pth)
Nun Zum Problem:
Wenn die Value = 50% ist, dann funktioniert alles perfekt, wenn aber die Value z.B 90% ist, dann wird die Nadel immer Dünner.
Ich habe es schon mit Matrix-Transformation usw. versucht, aber irgendwie lässt sich das Problem nicht beheben.
Kennt jmd. einen einen Lösungsansatz/Lösung?
Ich nehme es euch nicht übel, wenn ihr das Problem nicht versteht, ich habe absolut keine Ahnung wie ich den ganzen Gedankensalat in Worte packen soll
Ich denke aber die Bilder helfen etwas.
Liebe Grüße
/nicht getestet