我是Quartz 2D的新手。我試圖繪製一個三角形然後旋轉。有了我使用Quartz 2D的有限背景,我從Apple/Google搜索中發現我可以使用CGContextRotateCTM
函數。我的問題是,當我這樣做後,我畫的整個文本也旋轉。我嘗試使用CGContextSaveGstate
並在我做旋轉後恢復它,但沒有工作。我想知道我的方法是否正確?或者有更好的方法可以用來實現這個目標?Quartz 2D drawing primitives旋轉
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
for (key in data)
{
// get point
Data *tmpdata =[data objectForKey:key] ;
point=[data point ]
//setup and draw the
CGContextBeginPath(context);
CGContextSetRGBFillColor(context, [data fillcolor].r,
[data fillcolor].g, [tmpACdata fillcolor].b, 1);
CGContextSetLineWidth(context, 2.0
// Draw Triangle
CGContextMoveToPoint(context,point.x,point.y);
CGContextAddLineToPoint(context, point.x+8, point.y+8);
CGContextAddLineToPoint(context, point.x-8, point.y+8);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathFill);
CGContextRotateCTM(context, [data heading]* M_PI/180);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathFill);
// Draw Text
...............
}
CGContextRestoreGState(context);
我試過了邏輯,它沒有工作。現在它只顯示文字,但不顯示三角形。 – user519274 2011-12-18 10:26:49
如果您在座標方面有問題,請在相關行所在的代碼處插入一段代碼。或者拋出一個'std :: cout << yourVariable <<「\ n」'。 – Adrian 2011-12-18 10:32:34