Я пишу код для прямоугольников для приложения. Я могу отдельно перемещать точки прямоугольников левой кнопкой мыши (LMB).Одновременно перемещайте четыре прямоугольника.
Как я мог перемещать все четыре точки прямоугольника одновременно?
Принцип работы: если я перетащил 1 очко с LMB, другие 3 последуют за ним в одно и то же время с тем же самым смещением.
Это, как были построены элементы:
enum RectPoint {
case point1(point: CGPoint)
case point2(point: CGPoint)
case point3(point: CGPoint)
case point4(point: CGPoint)
func pointCoord() -> [CGPoint] {
switch self {
case .point1(let point): return [point]
case .point2(let point): return [point]
case .point3(let point): return [point]
case .point4(let point): return [point]
}
}
..........................
..........................
}
class SpecialView: NSView {
var array: [RectPoint] = []
private var trackVertex: RectPoint?
private var trackVertexIndex: Int?
private var trackElementIndex: Int?
..........................
..........................
private func updateDragging(point: CGPoint) {
guard let trackVertex = self.trackVertex,
let trackVertexIndex = self.trackVertexIndex,
let trackElementIndex = self.trackElementIndex
else {
return
}
let newVertex = trackVertex.debugReleaseChecking(point,
atElementIndex: trackElementIndex)
array[trackVertexIndex] = newVertex
self.needsDisplay = true
}
}
Вот метод перетаскивания LMB:
func mouseDragged(event: NSEvent) {
var point = self.convertPoint(event.locationInWindow, fromView: nil)
updateDragging(point)
}
Мне нужен код (или код псевдо), что позволяет я перетаскиваю все четыре точки любого прямоугольника за раз.
Какие ограничения вы воображая? Существуют разные способы мышления о том, как другие точки будут двигаться по отношению к тому, который вы перетаскиваете. (Это тот случай, о котором вы задумываетесь, верно? В отличие от простого перемещения по всем точкам в одном и том же направлении в то же самое время?) –
Да, я хотел бы, чтобы 3 других точки перемещались относительно точки Я тяну. – andy
ОК. Вы должны уточнить, каким образом они должны двигаться. В замке? Как будто линии между точками связаны упругим? Как будто другие точки имеют массу? На самом деле есть много эффектов, которые вы могли бы достичь (от простой до сложной физики), и вы, вероятно, воображаете один конкретный эффект, но вам нужно будет подробно описать, что это за эффект, прежде чем кто-нибудь сможет помочь вам разобраться, как Добейся этого. –