web前端:3d立体旋转+源码+详解

思路:

        

 

直接插入代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* 定义动画,名字run, 旋转360度:X、Y、Z(X、Y有Z的视觉感觉,不用写Z)   */
        @keyframes run {
            0% {
                transform: rotateX(0deg) rotateY(0deg);
            }
            100% {
                transform: rotateX(360deg) rotateY(360deg);
            }
        }
        ul {
            position: relative;
            width: 200px;
            height: 200px;
            /* 使用3d动画 */
            transform-style: preserve-3d;
            margin: 100px auto;
            /* 动画:动画名称  动画时间  循环次数(无限循环)  变速(匀速) */
            animation: run 5s infinite linear;
        }
        li{
            list-style: none;
            width: 200px;
            height: 200px;
            /* 绝对定位搭建正方体,
            现在的效果是六张图片重叠一起,
            后边每个li样式中添加平移+旋转搭建立方体 */
            position: absolute;
        }
        /* li内第一个子元素 */
        li:first-child {
            background-image: url("1.jpg");
            background-size: 100% 100%;
            /* 前:向前100px*/
            transform: translateZ(100px);
        }
        /* li内第二个子元素··· */
        li:nth-child(2) {
            background-image: url("2.jpg");
            background-size: 100% 100%;
            /* 后:z向后100px,任意旋转180度(图片翻面变正) */
            transform: translateZ(-100px) rotateY(180deg);
        }
        li:nth-child(3) {
            background-image: url("3.jpg");
            background-size: 100% 100%;
            /* 上:向上100px,x轴顺时针90度*/
            transform: translateY(-100px) rotateX(90deg);
        }
        li:nth-child(4) {
            background-image: url("4.jpg");
            background-size: 100% 100%;
            /* 下:向下100px,x轴逆时针90度 */
            transform: translateY(100px) rotateX(90deg);
        }
        li:nth-child(5) {
            background-image: url("5.jpg");
            background-size: 100% 100%;
            /* 左:向左100px,y轴逆时针旋转90度*/
            transform: translateX(-100px) rotateY(-90deg);
        }
        li:nth-child(6) {
            background-image: url("6.jpg");
            background-size: 100% 100%;
            /* 右:向右100px,y轴顺时针旋转90度 */
            transform: translateX(100px) rotateY(90deg);
        }
    </style>
</head>
<body>
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</body>
</html>

代码段中所有移动100px,都是移动图片的中心点到四个边,然后旋转搭建立方体

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要从入门到精通cartographer,首先需要理解其原理和工作流程。Cartographer是一个用于SLAM(Simultaneous Localization and Mapping,同时定位与地图构建)的开库,能够将传感器数据转化为精确的地图。 入门阶段,需要了解SLAM的基本概念和原理。SLAM是指在未知环境中,通过感知传感器数据来同时估计机器人的运动轨迹和环境的地图。掌握SLAM的核心原理,包括前端、后端、回环检测等模块的作用和相互关系,能够帮助我们理解Cartographer的工作方式。 接下来,在学习Cartographer码的过程中,需要逐行详解其实现细节。首先,可以通过阅读Cartographer的文档和官方教程来了解其整体结构和基本用法。然后,需要仔细研究Cartographer的核心算法和数据结构,包括激光雷达数据的处理、位姿变换的估计、地图的构建与更新等。可以针对每个模块和函数进行调试和分析,逐行深入码。 在深入码的过程中,可以利用调试工具、打印输出等方法来观察程序的执行过程和数据变化。同时,可以结合论文和研究成果来深入理解算法和数据处理的原理。通过对每个细节进行分析和思考,能够更好地理解Cartographer的实现机制和运行逻辑。 在精通Cartographer之前,还需要多进行实践和调试。可以尝试使用不同的传感器数据和场景来测试Cartographer的性能和鲁棒性。通过实际应用中遇到的问题和挑战,能够进一步加深对Cartographer的理解和掌握。 总之,要从入门到精通Cartographer,需要系统学习SLAM的原理和基本概念,并逐行深入研究Cartographer的码和实现细节。通过理论学习和实践应用相结合,能够全面掌握Cartographer的工作原理和使用方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值