Perspective、translateZ、rotate3d 和 no 之间的关系是什么?面孔
What is the relation between Perspective, translateZ, rotate3d, and no. of faces
我指的是 this post 进行 3d 转换。
所以我尝试动态设置 .container
的视角 属性,这样相邻的面应该垂直于前面,如下图绿线所示。
相关代码
.container {
width: 210px;
height: 140px;
position: relative;
perspective: 1000px;
}
#carousel {
width: 100%;
height: 100%;
position: absolute;
transform-style: preserve-3d;
transform: translateZ( -288px ) rotateY( -160deg );
}
#carousel figure {
margin: 0;
display: block;
position: absolute;
width: 186px;
height: 116px;
left: 10px;
top: 10px;
border: 2px solid black;
}
我尝试了不同种类的组合,但它是部分正确的,因为它既可以用于小面孔,也可以用于大面孔。
我只知道透视值与面数成反比
perspectiveValue = translateZValue/noOfFaces;
perspectiveValue = translateZValue*rotationAngle/noOfFaces;
如果有人知道perspective、translateZ、rotate3d 和no 之间的关系,请告诉我。面孔。谢谢。
你的视角点需要在左右两侧的交点上
如果你post,这是
105 px * cos (40deg) = 80 px
抱歉 - 我犯了一个愚蠢的错误,它是棕褐色的。正确的公式是
105 px * tan (40deg) = 88 px
透视点(星星)需要与下边、右边和左边成轴。 (绿线)。
这样,您从指定的点(星星)看,您看到右侧完全在您的方向(您在绿线方向看) - 所以这一侧是 "collapsed"。左边也一样。
所以预期值就是绿色箭头的尺寸:
进一步说明(点击放大)
美丽code 使用此视角 post由 vinayakj 编辑
我指的是 this post 进行 3d 转换。
所以我尝试动态设置 .container
的视角 属性,这样相邻的面应该垂直于前面,如下图绿线所示。
相关代码
.container {
width: 210px;
height: 140px;
position: relative;
perspective: 1000px;
}
#carousel {
width: 100%;
height: 100%;
position: absolute;
transform-style: preserve-3d;
transform: translateZ( -288px ) rotateY( -160deg );
}
#carousel figure {
margin: 0;
display: block;
position: absolute;
width: 186px;
height: 116px;
left: 10px;
top: 10px;
border: 2px solid black;
}
我尝试了不同种类的组合,但它是部分正确的,因为它既可以用于小面孔,也可以用于大面孔。 我只知道透视值与面数成反比
perspectiveValue = translateZValue/noOfFaces;
perspectiveValue = translateZValue*rotationAngle/noOfFaces;
如果有人知道perspective、translateZ、rotate3d 和no 之间的关系,请告诉我。面孔。谢谢。
你的视角点需要在左右两侧的交点上
如果你post,这是
105 px * cos (40deg) = 80 px
抱歉 - 我犯了一个愚蠢的错误,它是棕褐色的。正确的公式是
105 px * tan (40deg) = 88 px
透视点(星星)需要与下边、右边和左边成轴。 (绿线)。 这样,您从指定的点(星星)看,您看到右侧完全在您的方向(您在绿线方向看) - 所以这一侧是 "collapsed"。左边也一样。
所以预期值就是绿色箭头的尺寸:
进一步说明(点击放大)
美丽code 使用此视角 post由 vinayakj 编辑