我正在努力寻找在二维平面上设置一系列航点的正确方法。例如:
第1点:x = 2.3,y = 4.5
第2点:x = 3.1,y = 5.0
...
第83点:x = 25.3,y = 83.1
我希望能够在点数组中循环(例如:对于点10到25,将x坐标向右移动3),并取消单个点(什么是坐标)点42?)。
这在VisualBasic中很简单(将double的wayPoints(100,2)设为Double),但是经过快速的文档之后,我却一无所获。数组的语法似乎要复杂得多。
任何帮助将不胜感激。
答案 0 :(得分:0)
您可以为此使用结构。
struct Point {
var x: Double = 0.0
var y: Double = 0.0
}
// Create an instance of the point struct
var myPoint = Point(x: 2.5, y: 6.7)
// You can also create an array of Point structs
var points: [Point] = [Point(x: 3.4, y: 8.5)]
您可以在阵列中循环并进行所需的任何更改。正如Leo Dabus所指出的,您不能直接在struct
循环中修改for
,因此需要通过索引访问数组。例如:
for index in points.indices {
points[index].x += 30 // This adds 30 to the x coordinate of each point in the array
}
您可以使用下标索引访问数组中的任何点。
var selectedPoint = points[4] // This returns a single Point object
如果需要,还可以使用范围创建新数组。
var rangeOfPoints = points[0...4] // This returns a new array of Points with 5 items