解决方案 »

  1.   

    難點是在定位坐標.Imports System.DrawingPublic Class Form1
        '帶小實心圓的圓
        Private Sub CoreCircle(ByVal CX As Single, ByVal CY As Single, ByVal RW As Single, ByVal RI As Single)
            Dim grap As Graphics = Me.CreateGraphics
            Dim LTW As Point
            Dim LTI As Point
            Dim SizeW As Size
            Dim SizeI As Size        LTW.X = CX - RW
            LTW.Y = CY - RW
            LTI.X = CX - RI
            LTI.Y = CY - RI
            SizeW.Width = RW * 2
            SizeW.Height = RW * 2
            SizeI.Width = RI * 2
            SizeI.Height = RI * 2        Dim rg As Rectangle = New Rectangle(LTI, SizeI)
            Dim drawRect As New RectangleF(LTW, SizeW)
            grap.FillEllipse(Brushes.Black, rg)
            grap.DrawEllipse(Pens.Black, drawRect)
        End Sub    '空心圓
        Private Sub CoreLessCircle(ByVal CX As Single, ByVal CY As Single, ByVal RW As Single)
            Dim grap As Graphics = Me.CreateGraphics
            Dim LTW As Point
            Dim SizeW As Size        LTW.X = CX - RW
            LTW.Y = CY - RW
            SizeW.Width = RW * 2
            SizeW.Height = RW * 2        Dim drawRect As New RectangleF(LTW, SizeW)
            grap.DrawEllipse(Pens.Black, drawRect)
        End Sub
        Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
            Dim grap As Graphics = Me.CreateGraphics
            Dim Point1 As PointF = New PointF(194, 198)
            Dim Point2 As PointF = New PointF(194, 202)
            Dim Point3 As PointF = New PointF(200, 200)
            Dim Point As PointF() = {Point1, Point2, Point3}        Dim pen As Pen = New Pen(Color.Black, 1)
            pen.DashStyle = Drawing2D.DashStyle.Solid
            pen.EndCap = Drawing2D.LineCap.ArrowAnchor        CoreCircle(100, 200, 30, 5) 'P1
            grap.DrawString("P1", Me.Font, Brushes.Black, 95, 155)
            grap.DrawLine(pen, 130, 200, 200, 200) 'L1
            grap.DrawLine(Pens.Black, 200, 140, 200, 260) 'T1
            grap.DrawString("T1", Me.Font, Brushes.Black, 192, 125)        grap.DrawLine(pen, 200, 200, 270, 145) 'L2
            grap.DrawLine(pen, 200, 200, 270, 255) 'L3        CoreLessCircle(300, 140, 30) 'P2
            grap.DrawString("P2", Me.Font, Brushes.Black, 295, 95)
            CoreLessCircle(300, 260, 30) 'P3
            grap.DrawString("P3", Me.Font, Brushes.Black, 295, 215)        grap.DrawLine(pen, 330, 140, 400, 140) 'L4
            grap.DrawLine(pen, 330, 260, 400, 260) 'L5
            grap.DrawLine(Pens.Black, 400, 100, 400, 180) 'T2
            grap.DrawString("T2", Me.Font, Brushes.Black, 392, 85)
            grap.DrawLine(Pens.Black, 400, 220, 400, 300) 'T3
            grap.DrawString("T3", Me.Font, Brushes.Black, 392, 205)
            grap.DrawLine(pen, 400, 140, 480, 140) 'L6
            CoreLessCircle(510, 140, 30) 'P5
            grap.DrawString("P5", Me.Font, Brushes.Black, 505, 95)        grap.DrawLine(pen, 400, 260, 480, 260) 'L7
            CoreLessCircle(510, 260, 30) 'P4
            grap.DrawString("P4", Me.Font, Brushes.Black, 505, 215)
            grap.DrawLine(pen, 540, 260, 620, 260) 'L8
            grap.DrawLine(Pens.Black, 620, 220, 620, 300) 'T4
            grap.DrawString("T4", Me.Font, Brushes.Black, 612, 205)        Dim P1 As PointF = New PointF(620, 260)
            Dim P2 As PointF = New PointF(650, 260)
            Dim P3 As PointF = New PointF(650, 450)
            Dim P4 As PointF = New PointF(100, 450)
            Dim P5 As PointF = New PointF(100, 230)
            Dim P As PointF() = {P1, P2, P3, P4, P5}
            grap.DrawLines(pen, P)  'L9
        End Sub
    End Class