我是 CGAffine 世界的新手。任何人都知道为什么我的转型不起作用/采取?
我有一个使用 UIGraphicsBeginPDFContextToData 创建的有效 PDFContext 和以下当前矩阵:
CGAffineTransform curMat = CGContextGetCTM(context); NSLog (@"current context matrix: %f %f %f %f %f %f", curMat.a, curMat.b, curMat.c, curMat.d, curMat.tx, curMat.ty);
NSLog 值:
当前矩阵:1.000000 0.000000 -0.000000 -1.000000 0.000000 792.000000
我使用以下方法创建转换矩阵:
CGAffineTransform xform = CGAffineTransformMake(a, b, c, d, tx, ty);
NSLog 值:
变换矩阵:0.062500 0.000000 0.000000 0.062500 0.000000 0.000000
我从以下位置得到我的矩形:
CGRect pdfBounds = UIGraphicsGetPDFContextBounds();
NSLog 值:
pdf边界:0.000000 0.000000 612.000000 792.000000
我将转换矩阵应用于:
CGRectApplyAffineTransform (pdfBounds, xform);
然后我重新检查当前矩阵值:
CGAffineTransform curMat2 = CGContextGetCTM(context); NSLog (@"current context matrix after transformation: %f %f %f %f %f %f", curMat2.a, curMat2.b, curMat2.c, curMat2.d, curMat2.tx, curMat2.ty)
并且 NSLog 值与开始时相同。
转换后的当前上下文矩阵:1.000000 0.000000 -0.000000 -1.000000 0.000000 792.000000
我错过了什么?为什么没有发生/发生转变?谢谢你。