Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 3. Создать структуру «Отрезок», содержащую две внутренние структуры «Точки». Структуру «Точка»
- создать самостоятельно, несмотря на уже имеющуюся в Swift’е. Таким образом, структура «Отрезок»
- содержит две структуры «Точки» — точки A и B (stored properties). Добавить два computed properties:
- « середина отрезка» и «длина» (считать математическими функциями)
- 4. При изменении середины отрезка должно меняться положение точек A и B.
- */
- import Foundation
- struct Point {
- var x: Double
- var y: Double
- }
- struct Segment {
- var pointA: Point
- var pointB: Point
- var midPoint: Point {
- get {
- let midPointX = (pointA.x + pointB.x) / 2
- let midPointy = (pointA.y + pointB.y) / 2
- return Point(x: midPointX, y: midPointy)
- }
- set {
- if pointB.y >= pointA.y {
- let lengthY = (pointB.y - pointA.y) / 2
- pointA.x = newValue.x - lengthY
- pointA.y = newValue.y - lengthY
- pointB.x = newValue.x + lengthY
- pointB.y = newValue.y + lengthY
- } else {
- let lengthY = (pointA.y - pointB.y) / 2
- pointA.x = newValue.x - lengthY
- pointA.y = newValue.y + lengthY
- pointB.x = newValue.x + lengthY
- pointB.y = newValue.y - lengthY
- }
- }
- }
- var length: Double {
- return sqrt(pow((pointB.y - pointA.y), 2) +
- pow((pointB.x - pointA.x), 2))
- }
- }
- var newSegment = Segment(pointA: Point(x: 1, y: 6),
- pointB: Point(x: 5, y: 2))
- newSegment.midPoint = Point(x: 11, y: 4)
- print(newSegment.pointA)
- print(newSegment.pointB)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement