2015-02-17 2 views
0

Я могу сгенерировать квадрат с помощью этого стандартного кода. неСоздание площади Безье в нескольких шагах

func drawSquare() { 
    let width:CGFloat = 100 
    var square = UIBezierPath() 
    square.moveToPoint(CGPoint(x: 0, y: 0)) 
    square.addLineToPoint(CGPoint(x: width, y: 0)) 
    square.addLineToPoint(CGPoint(x: width, y: width)) 
    square.addLineToPoint(CGPoint(x: 0, y: width)) 
    square.lineWidth = 5 
    square.closePath() 
    UIColor.blackColor().setStroke() 
    square.stroke() 
} 

Однако, если я хочу сделать каждый сегмент addLineToPoint() в двух шагах, мой квадрат больше не тянет правильно.

func drawSquare2Steps() { 
    let width:CGFloat = 200 
    let mult:CGFloat = 2 
    var square = UIBezierPath() 
    square.moveToPoint(CGPoint(x: 0, y: 0)) 

    square.addLineToPoint(CGPoint(x: 100, y: 0)) // 1 
    square.addLineToPoint(CGPoint(x: 200, y: 0)) // 2 
    square.addLineToPoint(CGPoint(x: 200, y: 100)) // 3 
    square.addLineToPoint(CGPoint(x: 200, y: 200)) // 4 
    square.addLineToPoint(CGPoint(x: 100, y: 200)) // 5 
    square.addLineToPoint(CGPoint(x: 0, y: 200)) //6 

    square.lineWidth = 5 
    square.closePath() // 7 
    UIColor.orangeColor().setStroke() 
    square.stroke() 
} 

Вот путь, который я вижу:

enter image description here

Я попытался описать эту функцию в этом образе:

enter image description here

Моя конечная цель не сделать квадрат, но более сложный путь. Квадрат просто иллюстрирует проблему с моим сложным путем.

ответ

1

Ничего страшного, кроме вашего размера (100, 100), но размер квадрата (200 200), поэтому вы не видите весь квадрат.