问题标签 [cgaffinetransform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
32032 浏览

ios - 围绕其中心旋转 UIView 但几次

我试图UIView围绕它的中心旋转一些,所以简单的代码类似于(在伪代码中):

现在,如果我将角度设置为 M_PI/2,那么它会很好地旋转。如果我将它设置为 2*M_PI,那么它“什么都不做”。我可以理解矩阵转换为什么都不做的东西(旋转 360 在某种意义上意味着“停留”),但是,我想将它旋转 5 次(想想报纸旋转比例对你产生的影响——我不是善于描述,希望有人理解)。因此,我尝试将设置角度添加到 180 度(M_PI)并添加嵌套的animatationBlock. 但我想因为我someview.transition再次设置相同的属性()它会以某种方式忽略它)。我尝试使用角度 M_PI 将动画的重复计数设置为 2,但它似乎只是旋转 180,回到直线位置,然后再次启动旋转。

所以,我有点想法,任何帮助表示赞赏!--t

0 投票
5 回答
26936 浏览

iphone - iPhone 左卷曲和右卷曲过渡

我正在寻找一种在 iPhone 上执行UIViewAnimationTransitionCurlUpUIViewAnimationTransitionCurlDown转换的方法,但不是从上到下,而是从左到右(或横向模式下的上/下)。我已经看到这个问题在互联网上问了几次,但似乎没有一个得到答案。不过我觉得这是可行的。

我尝试过更改 View 的变换和 view.layer 的变换,但这并不影响过渡。由于当设备改变方向时过渡会发生变化,我认为有一种方法可以欺骗设备在纵向模式下使用横向过渡,反之亦然?

0 投票
3 回答
8110 浏览

objective-c - CGAffineTransformMake - 如何保存 UIimageview 的状态以进一步处理它

我正在使用 CGAffineTransformMake 垂直翻转 UIImageView。它工作正常,但似乎没有保存 UIImageview 的新翻转位置,因为当我尝试第二次翻转它(执行下面的行代码)时,它就不起作用。

shape.transform = CGAffineTransformMake(1, 0, 0, 1, 0, 0);

请帮忙。

提前致谢。

凯达

0 投票
2 回答
1731 浏览

core-graphics - 使用 CGAffineTransform 缩放上下文中的所有点时保留线宽

我有一个CGPath我想绘制的坐标系。这样做涉及将旧坐标系缩放到上下文的坐标系上。为此,我使用CGContextConcatCTM()which 确实可以转换所有点。但是,由于它是缩放操作,因此水平/垂直线宽会更改为。例如,x 方向的比例为 10,而 y 方向的比例为 1,将导致垂直线的粗度是水平线的 10 倍。有没有办法保持平移矩阵(例如)的易用性,CGAffineTransform但不能同时缩放线宽,例如像这样的函数CGPathApplyAffineTransformToPoints

干杯

法师先生

0 投票
3 回答
20588 浏览

iphone - 如何同时使用 CGAffineTransformMakeScale 和 Rotation?

一次只有其中一件作品。如何保存转换然后应用另一个转换?干杯

0 投票
1 回答
20682 浏览

iphone - 在 CGAffineTransform 之后转换父/子 UIView 之间的坐标

在我动手做所有事情之前,我想问一下是否可以从框架中获得一些帮助。

我有一个 UIView,其中包含另一个带有地图的 UIView。父 UIView 包含地图的一些图例。最初我在地图视图中定义了一些坐标。例如 (100, 40),然后在父视图中放置一块图形(如谷歌地图中的图钉等)。父视图和子视图都是 300x200 并且具有相同的原点。这意味着 (100, 40) 在两个视图中是同一点。

现在我使用 CGAffineTransform 缩放和移动子 UIView(地图),坐标 (100, 40) 现在位于其他位置。父视图在这里实际上是一个掩码。

我可以使用 CGAffineTransform 矩阵或框架的其他部分来计算并通知父视图在该点移动后放置大头钉的位置吗?

即子视图中的 (100, 400) 与父视图中的 (100, 40) 相比,转换后它与什么比较?

感谢您提供的建议或帮助。

子 UIView 的动画

0 投票
1 回答
245 浏览

iphone - 如何将 imageView 固定到另一个并一起移动?

我正在开发一个我有弓箭的游戏。我必须通过我正在应用 CGAffineTransform 的不同角度在触摸时移动弓箭图像视图。

问题是,弓箭在旋转后会改变位置,所以箭不会停留在弓的中心。我想把这支箭固定在弓的中心点并随着弓一起移动。

我对弓和箭应用了相同的角度,但似乎弓在变换后改变了它的中心。在检测触摸时,我需要通过其中心向箭头提供触摸位置,因此我什至无法使用箭头的中心属性将其固定在某个点。

有人可以帮我吗?真的很紧急。

0 投票
7 回答
20849 浏览

objective-c - 从 CGAffineTransform 中获取缩放转换

我发现了一个关于仅获取旋转的类似问题,但是据我了解,缩放和旋转在变换矩阵中的工作方式不同。

矩阵不是我的强项,所以如果有人提示我如何仅从 CGAffineTransform 中进行缩放,我将不胜感激。

顺便提一句。我尝试在 CGSize 上应用 CGAffineTransform,然后获取高度 x 宽度以查看它的缩放程度,但高度 x 宽度具有奇怪的值(取决于在 CGAffineTransform 中找到的旋转,所以......嗯,这不起作用)

0 投票
6 回答
15400 浏览

objective-c - 应用 CGAffineTransform 后获取 UIView 的大小

我很惊讶没有找到这个问题的答案,也许是我忽略了一些非常简单的事情:

应用 CGAffineTransform 后如何获得 UIView 的实际大小?

例如。

我的 UIView 的大小为 300 x 200,我应用了缩放变换,比如说水平和垂直的因子 2,所以 UIView 现在在屏幕上占用 600 x 400,但它的边界和它的图层边界仍然返回 300 x 200 的大小...我在哪里可以找到 UIView 的实际大小?

附言。忘了提我还想旋转uiview。如果我只应用缩放 CGSizeApplyAffineTransform 效果很好,但是当还有旋转时,它就不能正常工作。

编辑:drawonward 为我指明了正确的方向,我只是对要编译的代码进行了一些改进,这里是:

现在 rect.size 包含应用了转换的视图的尺寸再次感谢drawonward

0 投票
1 回答
1218 浏览

objective-c - iPhone/iPad 同时平移、捏合和旋转视图

我正在尝试重新创建照片应用程序的行为,您可以在其中同时平移、捏合和旋转。我有基本的工作,但我被困在了一些事情上。

对于平移,我将视图的中心点偏移了平移量。这运作良好。

对于捏合和旋转,我正在对视图应用仿射变换。这也运作良好。

问题是当我平移(即移动子视图),然后捏合或旋转时 - 仿射变换似乎是使用视图的旧中心点应用的。我虽然它应该使用当前的中心点作为变换原点 - 因为我在平移时更新中心点我虽然这应该工作。我不是围绕子视图的中心点旋转,而是围绕原始中心点进行旋转运动。

我该如何纠正?显然可以直观地结合这三个手势,因为照片应用程序成功地做到了。

我尝试对平移使用仿射平移,但效果是一样的。