- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
结构CATransform3D的m34是什么意思,我只知道可以改变视角,但是-0.001和0.001的值是什么意思呢?
最佳答案
以下是一些我认为读者在回答问题之前应该了解的主题的背景知识:
w
与旧的相比。这个系统的美妙之处在于它允许通过向量矩阵乘法来进行旋转/平移/缩放。 var transform = CATransform3DIdentity
transform.m34 = -1 / 500
transform = CATransform3DRotate(transform, Double.pi/4, 0, 1, 0)
transform = CATransform3DTranslate(transform, 0, 0, 200)
imageLayer.transform = transform
要知道上面的代码是做什么的,您必须以相反的顺序阅读它。首先,图像在 z 轴方向上移动 200 像素(正号表示其方向是从屏幕朝向您的脸部)。其次,图像相对于 y 轴旋转 45 度(向右倾斜)。如果您停在这里,您将看到一个宽度较小并向右移动的图像。但是一些操作是在第 3 步完成的,并且“神奇地”给出了图像透视图。
m34
的奥秘就在这里元素。
[x' y' z' w'] = ([x y z w] * translation_matrix * rotation_matrix) * perspective_matrix
透视矩阵变换
perspective_matrix
的操作。
z = the object's z-coordinate which is its distance to the screen
eye2screen #distance from your eyes to the screens
scaleFactor = eye2screen / (eye2Screen - z) #Thales's intercept theorem
快速计算可以证实我们的直觉。随着 z 变小(即物体远离眼睛),
scaleFactor
变小。
scaleFactor
与
perspective_matrix
上面的乘法我们有:
scaleFactor = 1 / (1 + m34 * z)
1 / (1 - z / eye2screen) = 1 / (1 + m34 * z)
-1 / eye2screen = m34
m34 = -1 / eye2screen
在眼睛和屏幕之间选择一个合理的距离(比如 500),你可以计算 m34,你就得到了一个新的
perspective_matrix
.
m34 = -1 / eye2screen
给你一个perspective_matrix
perspective_matrix
操作只能在转换管道结束时应用一次。 关于perspective - CATransform3D 的 m34 的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3881446/
-webkit-transform: perspective 和 -webkit-perspective 之间有什么区别(作为供应商在 -webkit- 上给出。) 我在同样的情况下试过这个,但他们返
他们应该做同样的事情吧?还要给 child 设置3d视角?但是在浏览器支持或其他方面有什么不同吗? 最佳答案 透视 CSS 属性通过影响 Z 平面和用户之间的距离为元素提供 3D 空间。 效果的强度由
这是我正在尝试获取透视原点的 css #perspective { width: 200px; height: 200px; margin: 75px 0 0 75px; bo
如果我使用透视,我有一个翻转动画,我有一个简单的卡片,当鼠标悬停时会翻转。根据我的理解,透视属性和转换属性 perspective() 是相同的,只是透视应用于父级并在其子级上呈现,而 perspec
在这个具有不同视角的立方体示例中: http://codepen.io/HugoGiraudel/pen/GLbca 右边的有 -webkit-perspective: 250px; 而左边的有 -w
|-- Car |-- Green | |-- Audi | |--
我无法理解 glm::perspective。我知道它的作用,但不明白它的机制。有谁知道源代码/程序是什么? 最佳答案 全部开源,看the code : template GLM_FUNC_QUAL
如果我有 div 包装器,它就可以工作: .body { perspective: 1px; width: 100%; height: 100vh; overflow-x: hidde
我正在尝试制作具有正面文本和背面文本的卡片翻转动画。但是,我一直坚持让背景文字出现。 这是 CSS: body{ font-family: Arial; font-size: 40px;
TL;DR: 是否可以为直接通过 transform: perspective( ),而不是通过 perspective: 从父级继承它? 您可以在 http://jsbin.com/fevik/2/
我在 body 上设置了 perspective-origin: 50% 50% 并且沿 Z 轴移动的所有元素都以相对于文档高度的透视图显示。我想将透视原点设置到我的浏览器窗口的中间,以便在我垂直或水
HTML: CSS: div { width: 50px; height: 50px; background: red; border: 10px solid yel
我正在阅读 CSS 的第 8 章:权威指南,第 4 版。书中有这样一段话: div#inner { transform: perspective(750px) translateZ(60px) r
我正在尝试为主屏幕上的图像(飞机飞行)制作动画,并想让它看起来好像飞机从远处开始,随着时间的推移越来越近。 我将两张图像叠加在一起以创建 3D 效果,并且能够成功地为“天空”背景制作动画,使其看起来就
透视动画 我正在玩弄 css perspective() 动画。但是,在 Chrome 和 Opera 中对其进行测试时,我遇到了一些奇怪的行为。 Chrome 和 Opera 在 动画 上反复快速悬
我正在制作一个简单的示例来演示 CSS3 Perspective 属性添加 3D 侧翻效果。但是下面的简单例子,无法完成! .div1{height:300px;width:300px;
我找不到答案的“简单”问题 -- -webkit-perspective 实际上在数学上做了什么? (我知道它的效果,它基本上就像一个焦距控制)例如-webkit-perspective: 500 是
结构CATransform3D的m34是什么意思,我只知道可以改变视角,但是-0.001和0.001的值是什么意思呢? 最佳答案 以下是一些我认为读者在回答问题之前应该了解的主题的背景知识: iOS
我很难理解 Gradle 的 Groovy DSL 是如何工作的。 不幸的是,Gradle 是我在日常工作中遇到的 Groovy 的主要用例,而且我注意到对于许多开发人员来说,他们完全通过 Gradl
我有一个场景有两个摄像头,一个是正交的,另一个是透视的,当正交相机处于事件状态时,一切看起来都很正常,但透视相机显示场景 X 轴倒置,有什么办法可以解决它?我的两个摄像头正常添加到场景中: camer
我是一名优秀的程序员,十分优秀!