2011-02-17 41 views
0

我有一個應用程序的iphone版本,它從存儲在覈心數據中的CGPoints在屏幕上繪製線條。所有的圖紙都是基於線條的,沒有任何填充,所以基本上它畫出了從給定點到下一點的線條等。從給定CGPoints調整繪製動畫的大小?

現在我正在製作一個iPad版本,並且我想使用相同的點數用我爲跟蹤屏幕而建立的功能,這是一個很大的工作,所以我希望重用我擁有的相同點)。

是否有任何機構有一個想法,算法或功能用於繪製相同的點'相同的點,但X2大小?

即Draw方法:(把它從蘋果GLPaint例子)

- (void) playback:(NSNumber*)index 
{ 

    if (p==0) { 
     pointsCount=[[localpoints objectAtIndex:[index intValue]] count]-1; 
    } 

    isPlayBackOn = YES; 

    LetterPoint *point1 = (LetterPoint*)[[localpoints objectAtIndex:[index intValue]] objectAtIndex:p]; 
    CGPoint p1 = CGPointFromString(point1.float_point); 
    LetterPoint *point2 = (LetterPoint*)[[localpoints objectAtIndex:[index intValue]] objectAtIndex:p+1]; 
    CGPoint p2 = CGPointFromString(point2.float_point); 

    [self renderLineFromPoint:p1 toPoint:p2]; 

    p++;  

    if(p<pointsCount){ 
     [self performSelector:@selector(playback:) withObject:index afterDelay:0.03]; 
    }else { 
    p=0; 
     isPlayBackOn = NO; 
    } 
} 

感謝

SHANI

回答

2

創建仿射與2.0比例因子變換矩陣(和如果你想移動繪圖的原點,可能需要翻譯)。然後將該變換應用於CGPointApplyAffineTransform()的每個點,並使用得到的點進行繪製。

2

好,只是雙p1.x和p1.y ... 正好與此轉換它:的

代替:

CGPoint p1 = CGPointFromString(point1.float_point); 

做到這一點:

CGPoint p1Temp = CGPointFromString(point1.float_point); 
CGPoint p1 = CGPointMake(p1Temp.x * 2, p1Temp.y * 2); 

和相同的p2 ...

+0

嘿,謝謝。這是我第一次不知道答案是什麼。 – shannoga 2011-02-20 15:41:04