Hallo Zusammen,
ich komme nicht so richtig weiter.
Die Aufgabe lautet ein Programm zu erstellen mit dem ein Dreieck gezeichnet werden kann. mit dem Mauszeiger soll die Ecke B beliebig bewegt werden
So weit bekomme ich es auch hin.
Mein Problem ist: Die Bezeichnungen der Seiten a,b,c sollen jeweils in Höhe der Seitenmitte angezeigt werden.
Hier komme ich nicht weiter.
Code
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) _
Handles Me.Click ' wenn Form1 geklickt, inhalt löschen
Invalidate() 'Löschen, ungültig
End Sub
Private Sub Form1_MouseMove(sender As Object, _
e As System.Windows.Forms.MouseEventArgs) _
Handles Me.MouseMove
Dim ptA As New Size(-15, -10)
Dim ptB As New Size(-10, -20)
Dim ptC As New Size(-10, -10)
Dim ptkla As New Size(10, 10)
Dim ptklb As New Size(10, 10)
Dim ptklc As New Size(10, 10)
Dim g As Graphics = CreateGraphics()
g.TextRenderingHint = Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit
Dim ptMitte As New PointF(CSng(ClientSize.Width / 2), _
CSng(ClientSize.Height / 2))
Static ptMouse As New PointF(e.X, e.Y) 'vorherrige Mausposition
Dim pp As New Pen(BackColor) ' Löschen mit BackColor
Dim bb As New SolidBrush(BackColor) 'Löschen
Dim fn As New Font("Arial", 10)
g.DrawLine(pp, ptMitte, ptMouse)
g.DrawLine(pp, ptMouse, New PointF(ptMitte.X, ptMouse.Y))
g.DrawLine(pp, ptMouse, New PointF(ptMouse.X, ptMitte.Y))
Dim pointc = New PointF(ptMouse.X, ptMitte.X)
ptMouse = New PointF(e.X, e.Y) 'aktuelle Mausposition
Refresh()
'Hypothenuse sichtbar zeichnen mit aktueller Mausposition
pp.Color = Color.Red
bb.Color = Color.Black
g.DrawLine(pp, ptMitte, ptMouse)
g.DrawLine(pp, ptMitte, New PointF(ptMouse.X, ptMitte.Y)) 'Horizontal
g.DrawLine(pp, ptMouse, New PointF(ptMouse.X, ptMitte.Y)) 'Wagerecht
g.DrawString("A", fn, bb, PointF.Add(ptMitte, ptA))
g.DrawString("B", fn, bb, PointF.Add(ptMouse, ptB))
g.DrawString("C", fn, bb, PointF.Add(pointc, ptC))
End Sub
End Class
Alles anzeigen