2013-06-03 91 views
0

我想爲我的應用程序創建一個工具,首先繪製直線,然後在第二個觸摸和移動用戶可以創建可調整的曲線線。 所以這個想法是當用戶觸摸並且第二次移動時設置曲線的中間點。繪製直線並創建曲線拖動線

而且我不知道如何檢查第二次觸摸並使用以前的路徑。

這種方法我用來畫簡單的線

謝謝!

- (void)setInitialPoint:(CGPoint)firstPoint 
{ 
self.firstPoint = firstPoint; 
//[self moveToPoint:firstPoint]; //add yourStartPoint here 
///[self addLineToPoint:endPoint]; 
} 

- (void)moveFromPoint:(CGPoint)startPoint toPoint:(CGPoint)endPoint 
{ 
self.lastPoint = endPoint; 

    // [self addLineToPoint:self.lastPoint];// add yourEndPoint here 

}

- (void)draw { 
    UIBezierPath *path = [UIBezierPath bezierPath]; 
//draw a line 

[path moveToPoint:self.firstPoint]; //add yourStartPoint here 
[path addLineToPoint:self.lastPoint];// add yourEndPoint here 

[self.lineColor setStroke]; 

[path setLineWidth:3.0]; 

[path stroke]; 
} 

回答

3

二摸 - 持有變量來跟蹤你的狀態。

曲線 - 不要嘗試改變路徑,只需使用第一行的開始和結束,並創建一個UIBezierPath以在用戶移動觸摸點時繪製。將貝塞爾移動到起點,然後使用終點和當前觸摸位置使用addCurveToPoint:controlPoint1:controlPoint2:

爲了讓它真的很有趣,讓用戶在繪製第二行時用兩根手指觸摸,然後爲這兩個控制點賦值。

+0

謝謝,@Wain。只需要找出如何跟蹤觸摸..因爲我有其他樂器(如虛線,箭頭),對他們我只需要一個接觸。 –

+0

UIGestureRecofnizer或UIView(touchesBegan :)。 – Wain

0

如果你只需要擺弄線的中點,學習二次曲線對你來說會很簡單,因爲它只有一個控制點而不是兩個。首先仔細觀察治療的性質,您的選擇(二次或貝塞爾)調整控制點1,CP2(如果有的話),起點和終點 下面的鏈接將幫助您瞭解貝塞爾曲線的性質在一個非常簡單的方法 link

+0

謝謝大家!我只是不能存儲路徑,並在繪製完成後將其改爲用兩根手指彎曲!我是新開發人員,我只需要一小段代碼!通常只從一小段代碼中理解))))抱歉! –