看板 Visual_Basic 關於我們 聯絡資訊
Public Class Form1 Dim Node1 As ArrayList = New ArrayList() Dim Node2 As ArrayList = New ArrayList() Dim w As Integer = 463 Dim h As Integer = 363 Dim TmpBMP As Bitmap = New Bitmap(w, h) Dim G As Graphics Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Randomize() Dim R As Random = New Random() Node1.Clear() Node2.Clear() G.Clear(Drawing.Color.White) Dim Num As Integer = R.Next(1, 100) Dim x As Integer, y As Integer, i As Integer, l As Integer l = h / 2 Me.Text = "產生" & Num & "個點" For i = 1 To Num x = R.Next(2, w - 2) y = R.Next(2, h - 2) If y > l Then Node2.Add(New Point(x, y)) Else Node1.Add(New Point(x, y)) End If G.DrawEllipse(Pens.Blue, x, y, 2, 2) PictureBox1.Refresh() Next End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load G = System.Drawing.Graphics.FromImage(TmpBMP) PictureBox1.BackColor = Drawing.Color.White PictureBox1.Image = TmpBMP End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If Node1.Count < 1 Or Node2.Count < 1 Then Exit Sub End If Dim x As Integer, y As Integer, k As Point, k1 As Point '由小至大排序 For x = 0 To Node1.Count - 2 For y = x + 1 To Node1.Count - 1 If Node1.Item(x).Y > Node1.Item(y).Y Then k = Node1.Item(x) Node1.Item(x) = Node1.Item(y) Node1.Item(y) = k End If Next Next '由大至小排序 For x = 0 To Node2.Count - 2 For y = x + 1 To Node2.Count - 1 If Node2.Item(x).Y < Node2.Item(y).Y Then k = Node2.Item(x) Node2.Item(x) = Node2.Item(y) Node2.Item(y) = k End If Next Next k = Node1.Item(0) For x = 1 To Node1.Count - 1 k1 = Node1.Item(x) G.DrawLine(Pens.Red, k.X, k.Y, k1.X, k1.Y) PictureBox1.Refresh() k = k1 Next k = Node2.Item(0) For x = 1 To Node2.Count - 1 k1 = Node2.Item(x) G.DrawLine(Pens.Black, k.X, k.Y, k1.X, k1.Y) PictureBox1.Refresh() k = k1 Next End Sub End Class -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.102.15
bobobobo:謝謝大大!可是沒有區分X後再連線但看過後有點頭緒了甘溫 02/15 23:21