从给定的CGPoints调整绘图动画的大小?

时间:2011-02-17 19:31:00

标签: iphone opengl-es resize drawing

我有一个应用程序的iphone版本,可以从存储在Core Data中的CGPoints中在屏幕上绘制线条。所有的图纸都是基于线的,没有任何填充,所以基本上它从给定点到下一个点等画一条线。

现在我正在制作一个iPad版本,我想使用相同的点(这些点是用我为跟踪屏幕而构建的功能收集的,这是很多工作所以我希望重用我所拥有的相同点)

是否有任何身体有一个想法,算法或函数用于从相同点但是X2尺寸绘制相同的线?

这是绘制方法:(从Apple的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 个答案:

答案 0 :(得分:2)

创建一个比例因子为2.0的仿射变换矩阵(如果要移动绘图的原点,则可能是平移)。然后将该变换应用于CGPointApplyAffineTransform()的每个点,并使用结果点进行绘制。

答案 1 :(得分: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相同......