Изменить размер рисования анимации из заданных CGPoints? - PullRequest
0 голосов
/ 17 февраля 2011

У меня есть версия приложения для iphone, которая рисует линии на экране из 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;
    }
}

спасибо

Шани

Ответы [ 2 ]

2 голосов
/ 17 февраля 2011

ну, просто удвойте 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 ...

2 голосов
/ 17 февраля 2011

Создайте матрицу аффинного преобразования с масштабным коэффициентом 2.0 (и, возможно, перевод, если вы хотите переместить начало чертежа). Затем примените это преобразование к каждой точке с CGPointApplyAffineTransform() и используйте полученные точки для рисования.

...