[英]Can I Create an Array of Points Arrays in Visual Basic
Dim myPointsArray As New List(Of Point)
创建一个可以用For Next
循环填充的数组,但是我想填充几个单独的数组,因此,如果Dim myPointsArrays(20) as
....这样我就不必为每个单独的数组调暗点数组。 然后,我可以用嵌套的For Next
循环填充它们。 这是我填充一个数组
For i = 1 To 6
myPointsArray.Add(New Point(Ox + HxPnt(4, i) / skale, Oy - HyPnt(4, i) / skale))
Next
在这里,Ox,Oy表示原点,HxHyPnts是点数组的成员,skale用于缩放全局值以使用像素进行绘制。 问题是我需要从数十个数组中绘制许多不同的折线和多边形。
您可以创建嵌套列表( List(Of T)
不是Array
):
Dim myPointsArray As New List(Of List(Of Point))
For i = 1 To 6
Dim innerList = new List(Of Point)
myPointsArray.Add(innerList)
For j = 1 to 10
innerList.Add(New Point(Ox + HxPnt(4, i) / skale, Oy - HyPnt(4, i) / skale))
Next
Next
要再次遍历这些值,请使用以下命令:
For Each list As List(Of Point) in myPointsArray
For Each p As Point in list
// Access p here
Next
Next
得到它了! 我创建了一个新的点数组变量(newPoints),从列表中填充它,然后将其与.ToArray一起转换。 然后通过填充,清除和重新填充数组,在循环中绘制每条折线。 这是做到这一点的最佳方法。 对我来说似乎很好。
For Each list As List(Of Point) In myPointsArray
For Each p As Point In list
newPoints.Add(New Point((Ox + p.X) / skale, (Oy + p.Y) / skale))
Next
e.Graphics.DrawLines(myPen, newPoints.ToArray)
newPoints.Clear()
Next
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.