2010-03-28 2 views
2

Я хотел бы нарисовать линии простой линейки с Quartz2D, только для практики.Как нарисовать анимационную линейку с Quartz2D?

Поскольку я понятия не имею о программной разработке векторной графики на iPhone, может быть, кто-то может указать мне на хороший учебник, чтобы начать?

ответ

4

Как Пламен указывает, Quartz 2D documentation стоит читать. Кроме того, курс отмечает are available online (формат VoodooPad) для моего курса разработки iPhone, где я посвящаю весь класс 2D-чертежу Quartz. Образец приложения QuartzExamples, который я создал, показывает некоторые более продвинутые концепции рисования, но образец Apple QuartzDemo - лучшее место, чтобы начать видеть, как вы можете сделать простой рисунок.

Как пример рисования тиков линейки, следующий код, который я использовал, чтобы сделать что-то подобное:

NSInteger minorTickCounter = majorTickInterval; 
NSInteger totalNumberOfTicks = totalTravelRangeInMicrons/minorTickSpacingInMicrons; 
CGFloat minorTickSpacingInPixels = currentHeight/(CGFloat)totalNumberOfTicks; 

CGContextSetStrokeColorWithColor(context, [MyView blackColor]); 

for (NSInteger currentTickNumber = 0; currentTickNumber < totalNumberOfTicks; currentTickNumber++) 
{ 
    CGContextMoveToPoint(context, leftEdgeForTicks + 0.5, round(currentTickNumber * minorTickSpacingInPixels) + 0.5); 

    minorTickCounter++; 
    if (minorTickCounter >= majorTickInterval) 
    { 
     CGContextAddLineToPoint(context, round(leftEdgeForTicks + majorTickLength) + 0.5, round(currentTickNumber * minorTickSpacingInPixels) + 0.5); 
     minorTickCounter = 0;    
    } 
    else 
    { 
     CGContextAddLineToPoint(context, round(leftEdgeForTicks + minorTickLength) + 0.5, round(currentTickNumber * minorTickSpacingInPixels) + 0.5); 
    } 

} 

CGContextStrokePath(context); 

где currentHeight высота области, чтобы покрыть и [MyView blackColor] просто возвращает CGColorRef, представляющий цвет черный.

+0

классный человек. Благодарю. – dontWatchMyProfile

+0

код не ясен (как синтаксис), пожалуйста, сделайте пример более четким, как вы создали и высоту села для этого контекста ... и т. Д. –