函数 CGAffineTransformMakeRotation 和 CGAffineTransformMake 不能使用quartz-2d一起工作

发布于 2024-11-02 18:30:02 字数 689 浏览 0 评论 0原文

看来函数 CGAffineTransformMakeRotation 和 CGAffineTransformMake 不能一起工作。

CGContextSetTextMatrix (context, CGAffineTransformMakeRotation  (degreesToRadians(40)));
CGContextSetTextMatrix(context, CGAffineTransformMake(1.0,0.0, 0.0, -1.0, 0.0, 0.0));

我得到了这个

在此处输入图像描述

CGContextSetTextMatrix (context, CGAffineTransformMakeRotation  (degreesToRadians(40))); 
CGContextSetTextMatrix(context, CGAffineTransformMake(1.0,0.0, 0.0, -1.0, 0.0, 0.0));

我得到了这个

在此处输入图像描述

我想要实现的是文字可读并且与 X 轴成 40 度。

谢谢!

It seems that function CGAffineTransformMakeRotation and CGAffineTransformMake can not work together.

CGContextSetTextMatrix (context, CGAffineTransformMakeRotation  (degreesToRadians(40)));
CGContextSetTextMatrix(context, CGAffineTransformMake(1.0,0.0, 0.0, -1.0, 0.0, 0.0));

I got this

enter image description here

CGContextSetTextMatrix (context, CGAffineTransformMakeRotation  (degreesToRadians(40))); 
CGContextSetTextMatrix(context, CGAffineTransformMake(1.0,0.0, 0.0, -1.0, 0.0, 0.0));

I got this

enter image description here

What I want to implement is the words are readable and have 40 degree with X-axis.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼泪淡了忧伤 2024-11-09 18:30:02

CGContextSetTextMatrix 设置文本矩阵,每次调用都会替换前一个矩阵,但不会组合它们。您需要组合矩阵,然后设置文本矩阵:

CGAffineTransform ctm = CGAffineTransformMake(1, 0, 0, 1, 0, 0);
ctm = CGAffineTransformTranslate(ctm, xTextPos, yTextPos);
ctm = CGAffineTransformScale(ctm, 1, -1);
ctm = CGAffineTransformRotate(ctm, -degreesToRadians(40));
CGContextSetTextMatrix(ctx, ctm);

The CGContextSetTextMatrix sets the text matrix and each call replaces the previous matrix, it does not combine them. You need to combine the matrixes and then set the text matrix:

CGAffineTransform ctm = CGAffineTransformMake(1, 0, 0, 1, 0, 0);
ctm = CGAffineTransformTranslate(ctm, xTextPos, yTextPos);
ctm = CGAffineTransformScale(ctm, 1, -1);
ctm = CGAffineTransformRotate(ctm, -degreesToRadians(40));
CGContextSetTextMatrix(ctx, ctm);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文