Benutzer mit den meisten Antworten
Grafik (Postionieren)

Frage
-
Hallo Gemeinde,
würde mir Bitte jemand bei meinem Problem helfen, der sich mir Grafik auskennt.
Das ganze soll eine Uhr werden.
Im Code unten habe ich ein Bitmap (160 x 160), die Kreisfläche der Uhr ,
darauf will ich im Kreis, die Ziffern schreiben, was mir auch grundsätzlich gelingt.
Bei einem Click auf eine Ziffer, will ich ein Ereignis erhalten.
Was ich nicht hin bekomme ist, den Radius des Kreises für die Ziffern kleiner zu machen,
als er jetzt gezeichnet wird. ich erreiche nur, das die Ziffern aus der Mitte wandern.
Könnte mir jemand ein paar tips geben wie das geht?
Vielen Dank für Unterstützung,
Peter
Dim x1, x2, y1, y2 As Integer
LastDate = NowDim FaceBit As New Bitmap(FaceBitmap)
Dim gr As Graphics '= pnlClock.CreateGraphics
gr = Graphics.FromImage(FaceBit)
Dim FaceBitWidth As Integer = FaceBit.WidthDim FaceBitHeight As Integer = FaceBit.Height
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality
Dim TickAmount As Integer
TickAmount = (Now.Minute * 6) - 90
x1 = 25
y1 = 25
x2 = FaceBitWidth - 50
y2 = FaceBitHeight - 50
gr.DrawPie(New Pen(Color.Black, 3), New Rectangle(x1, y1, x2, y2), TickAmount, 1) 'Draw the minute hand
...snip...
For i = 0 To 11
Dim sf As New StringFormat()
sf.Alignment = StringAlignment.Near
sf.LineAlignment = StringAlignment.Near
Dim Angle = i * PI / 6
x1 = Sin(Angle) * (FaceBitWidth / 2 - 10) + 65
y1 = Cos(Angle + PI) * (FaceBitWidth / 2 - 10) + 65Dim drawBounds As Rectangle '= target.Bounds
drawBounds.Height = 22 '32
drawBounds.Width = 35 '45
drawBounds.X = x1
drawBounds.Y = y1
Dim s As String
If i = 0 Then
s = "12"
Else
s = i.ToString
End Ifgr.DrawString(s, Label4.Font, New SolidBrush(PMColor), drawBounds, sf)
Next
Peter
Antworten
-
Hallo zusammen,
die Lösung besteht einfach darin, dass ich die Parameter, bzw. des zugrunde liegende Rectangle Objekts, geblickt habe.
Gruss Peter
Peter- Als Antwort markiert peter haus Donnerstag, 20. Januar 2011 13:00
Alle Antworten
-
Hallo Peter,
Danke, inzwischen bin ich dahinter gekommen.
ein Forum lebt von geben und nehmen. Wäre es daher machbar, dass Du uns an deiner Lösung teilhaben lässt? Das würde anderen User, die evtl. einmal eine ähnliche/gleiche Frage haben, sicherlich helfen. Vielen Dank im Voraus :)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo zusammen,
die Lösung besteht einfach darin, dass ich die Parameter, bzw. des zugrunde liegende Rectangle Objekts, geblickt habe.
Gruss Peter
Peter- Als Antwort markiert peter haus Donnerstag, 20. Januar 2011 13:00