问题标签 [catransform3d]
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.
iphone - CMAttitude 和 CATransform3D 是否与旋转矩阵相关?
我正在查看核心运动类CMAttitude
,它可以将设备的方向表示为 3x3 旋转矩阵。同时,我查看了CATransform3D
,它封装了视图的态度以及缩放。是CATransform3D
一个 4x4 矩阵。
我已经看到 OpenGL 旋转矩阵是 4x4 并且只是在第 4 行和第 4 列中填充了 0001。
如果 CMAttitude 的旋转矩阵与 CATransform 的矩阵有关,我在徘徊?
我可以使用通过旋转矩阵获得的设备在空间中的旋转来转换 UIViewCATransform3D
吗?我的意图是让用户移动手机并将相同的转换应用于屏幕上的 UIView。
额外的问题:如果它们是相关的,我如何将 CMAttitude 的旋转矩阵转换为 CATransform3D?
ios - 在 iOS 上,为什么设置图层的 sublayerTransform 会变成像 CATranformLayer 一样的行为?
众所周知,zPosition
层数只决定了哪一层覆盖哪一层。无论是zPosition
10 还是 1000 都不会影响其位置。
也就是说,除非我们使用CATransformLayer
包含那些图层,否则zPosition
这些图层的 将影响图层的位置。
但是,在 iOS 5.1.1 中运行的以下代码确实会zPosition
改变图层的位置...您可以在新的 Single View App 中尝试,并将以下代码添加到ViewController.m
. 如果 的zPosition
由layer2
变为88
,188
我们可以看到图层相应地移动。所以CATransformLayer
代码中没有;为什么会这样?(请引用 Apple 文档或任何参考资料)。
同样相关的是,如果将线self.view.layer.sublayerTransform = transform3D;
更改为,self.view.layer.transform = transform3D;
则zPosition
将不会影响位置。但根据 Apple 文档,transform
仅sublayerTransform
在 self 是否被转换方面有所不同:
两个层属性指定变换矩阵:
transform
和sublayerTransform
。由 指定的矩阵transform property
应用于层及其相对于层的子层anchorPoint
。[...]该sublayerTransform
属性指定的矩阵仅应用于图层的子图层,而不是图层本身。
所以奇怪的是,为什么改变它会导致表现self.view.layer
得像CATransformLayer
.
iphone - CATransform3DTranslate 之后的 CATransform3DRotate
我正在尝试制作一个折叠式 facebook 菜单,就像您在这里看到的那样:http ://www.mobileinc.co.uk/2012/05/folding-iphone-sidebar-menu/
目前,我正在研究“折叠”部分。我有 2 层: - 左层在 {1,.5} 有一个锚点 - 右层在 {0,.5} 有一个锚点
我可以让它们在我的主视图中间折叠而不会出现这样的问题:CGFloat width = self.view.frame.size.width; CGFloat destinationWidth = slider.value * width;
这完美地工作。当我尝试像这样在 x 轴上平移我的图层时,问题就来了: CATransform3DTranslate(transform,-marginLeft,0,-opposite)
图层仍然以良好的 z 平移折叠,但它以一个尴尬的角度结束,就好像整个视图已经旋转了一样。
这显然与视角有关(当我不设置 m34 时,它“有效”)但我不知道如何补偿它......
先感谢您!
干杯,
TeuBeu2
iphone - 应用始终相对于屏幕的透视
我想问一个关于通过CATransform3D
. 我知道如果你有一个 320x480 的视图,然后应用这个:
您创建了一个透视图,使观察者看起来像是直视屏幕中心,因此相同的转换看起来会有所不同,具体取决于正在转换的子视图在屏幕上的位置。例如,当视图位于屏幕中间时,倾斜视图如下所示:
如果它在左下角,它看起来像这样:
现在,我的问题是,仅当我正在转换的视图是另一个 320x480px 大视图的子视图时,才能使相对于屏幕的透视图起作用。但是,如果我要转换的视图是只有 100x100px 的视图的子视图怎么办?如果超级视图不是屏幕大小,有没有办法使透视相对于整个屏幕?提前致谢
ios - iOS:如何创建 3D 倾斜视图
可能重复:
如何将透视变换应用于 UIView?
嗨,我正在尝试UIView
像这样倾斜:
我想使用CATransform3DRotate
其他核心功能来做到这一点。可能吗?
到目前为止我所做的:我有一个方法可以创建一个名为 LowerTable 的橙色视图。
setAnchorPoint 方法如下:
设置锚点和视图后,我将在点击按钮时调用以下方法以应用变换:
它所做的是简单地降低 的高度UIView
,这很明显,通过角度变换,视图需要被塑造成我给定的图片。但是我做不到,我尝试了很多方法。请帮助我提供一些示例和清晰的解释。
提前致谢。
iphone - CATransform3DRotate 旋转 360 度
我最近开始使用 CATransform3D,它看起来很不错。不过,我对轮换只有 1 个问题。我正在尝试将我的视图向右旋转 360˚,但如果我只是将 360 度传递给 CATransform3DRotate 它不起作用(它根本不会移动。)
这是我的代码:
有谁知道如何解决这个问题?提前致谢!:)
objective-c - CATransform3D 动画的 CAKeyframeAnimation 上的平滑动画
我在视图之间创建了自己的过渡动画。我为两个属性(位置和变换)设置动画,以在视图之间提供类似立方体的过渡。框架使用CABasicAnimation
,而变换使用“2-stage” CAKeyframeAnimation
。一切都很好,除了一个我似乎无法弄清楚的小细节。在我的过渡中,我CATransform3DScale
在中间关键帧上应用 a 来创建放大/缩小效果。效果很好,只是动画看起来有点生涩。它以线性方式对关键帧之间的动画进行动画处理,我想对其进行平滑处理。现在CAKeyframeAnimation
有一种方法可以使用calculationMode
,但它似乎不适用于转换。我已经尝试将其设置为但kCAAnimationCubic
没有kCAAnimationCubicPaced
任何效果。
这是动画一个视图的变换的代码(类似的代码块动画另一个视图):
注意:RotateOnX(UIView *, CGFloat)
是一个块,它为在 X 上按所需弧度旋转的视图返回变换。
如您所见,我只在中间关键帧上设置了缩放变换。此外,视图的旋转非常平滑,只有缩放在改变方向时才会出现“混蛋”。
有人对如何平滑缩放/缩放有任何想法吗?
iphone - 旋转图层的图形上下文忽略任何变换
我正在由几个图层组成一个视图,其中一些是旋转的。这些图层的显示效果很好,但是当我尝试制作图像时,所有的旋转/变换都被忽略了。
例如,如果我有一个包含指向左侧的箭头图像的 CALayer,则在围绕 z 轴旋转(使用 CATransform3DMakeRotation)后,它指向顶部,并且图层正确显示。但是,如果我得到该层的图像(使用 renderInContext),箭头仍然指向左侧,忽略任何转换。
任何人都知道为什么,我该怎么做才能得到我想要的结果?:-)
示例代码:
xcode - 如何计算矩形到四边形的 3D 变换矩阵
希望有人可以提供帮助,我正在尝试研究如何将图像从矩形转换为四边形,每个角都有给定的 x,y 屏幕坐标。
到目前为止,我已将图像放在 CALayer 上,但需要计算出 CATransform3D 以将矩形扭曲为所需的四边形。下面是我想要实现的一个示例(从 a 到 b)。
如果我错了并且不能使用 CATransform3D 来完成,是否有任何其他方式可以通过示例来实现。
我认为 KennyTM 的答案与我在这里所需要的很接近。
我已经尝试过了,但运气不佳,他确实提到“您可能需要转置”,但如果是这种情况,我不知道该怎么做。
c# - MonoTouch 缺少成员?
我只是将一个 objc 视频播放器示例转换为 MonoTouch 并来到这一部分:
在 Monotouch 中,我可以进行“缩放”或“旋转”变换:
但即使在对象浏览器等效项中搜索后,也看不到透视选项。这是否是我在某处读到的 API 的“策划”的一部分,没有将较少使用的项目带到 MonoTouch ?
我将如何使用此功能?会员以这种方式失踪是否很常见?我认为一个自动化工具会生成绑定,所以我认为所有元素都是可用的,除非冗余或不推荐使用。