旋转 魔方

想起之前做的一个的旋转魔方

代码已经放到下面 只需要新建文件夹 ,新建index.html 文本打开将下面代码放入,新建image文件夹 下边放1.png ,2.png …12.png 12个对应的图片一个魔方就好了

在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>特殊相册</title>
    <style>
        html{
            background: #000;
            height: 100%;
        }
        /*最外层容器样式*/
        .wrap{
            position: relative;
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            width: 200px;
            height: 200px;
            margin: auto;
            /*改变左右上下,图片方块移动*/

        }
        /*包裹所有容器样式*/
        .cube{
            width: 200px;
            height: 200px;
            margin: 0 auto;
            transform-style: preserve-3d;
            transform: rotateX(-30deg) rotateY(-80deg);
            -webkit-animation: rotate 20s infinite;
            /*匀速*/
            animation-timing-function: linear;
        }
        @-webkit-keyframes rotate{
            from{transform: rotateX(0deg) rotateY(0deg);}
            to{transform: rotateX(360deg) rotateY(360deg);}
        }
        .cube div{
            position: absolute;
            width: 200px;
            height: 200px;
            opacity: 0.8;
            transition: all .4s;
        }
        /*定义所有图片样式*/
        .pic{
            width: 200px;
            height: 200px;
        }
        .cube .out_front{
            transform: rotateY(0deg) translateZ(100px);
        }
        .cube .out_back{
            transform: translateZ(-100px) rotateY(180deg);
        }
        .cube .out_left{
            transform: rotateY(90deg) translateZ(100px);
        }
        .cube .out_right{
            transform: rotateY(-90deg) translateZ(100px);
        }
        .cube .out_top{
            transform: rotateX(90deg) translateZ(100px);
        }
        .cube .out_bottom{
            transform: rotateX(-90deg) translateZ(100px);
        }
        /*定义小正方体样式*/
        .cube span{
            display: bloack;
            width: 100px;
            height: 100px;
            position: absolute;
            top: 50px;
            left: 50px;
        }
        .cube .in_pic{
            width: 100px;
            height: 100px;
        }
        .cube .in_front{
            transform: rotateY(0deg) translateZ(50px);
        }
        .cube .in_back{
            transform: translateZ(-50px) rotateY(180deg);
        }
        .cube .in_left{
            transform: rotateY(90deg) translateZ(50px);
        }
        .cube .in_right{
            transform: rotateY(-90deg) translateZ(50px);
        }
        .cube .in_top{
            transform: rotateX(90deg) translateZ(50px);
        }
        .cube .in_bottom{
            transform: rotateX(-90deg) translateZ(50px);
        }
        /*鼠标移入后样式*/
        .cube:hover .out_front{
            transform: rotateY(0deg) translateZ(200px);
        }
        .cube:hover .out_back{
            transform: translateZ(-200px) rotateY(180deg);
        }
        .cube:hover .out_left{
            transform: rotateY(90deg) translateZ(200px);
        }
        .cube:hover .out_right{
            transform: rotateY(-90deg) translateZ(200px);
        }
        .cube:hover .out_top{
            transform: rotateX(90deg) translateZ(200px);
        }
        .cube:hover .out_bottom{
            transform: rotateX(-90deg) translateZ(200px);
        }
    </style>
    <!--<link rel="stylesheet" href="css/index.css" />-->

</head>

<body>
<!--/*外层最大容器*/-->
<div class="wrap">
    <!--	/*包裹所有元素的容器*/-->
    <div class="cube">
        <!--前面图片 -->
        <div class="out_front">
            <img src="img/1.jpg"  class="pic"/>
        </div>
        <!--后面图片 -->
        <div class="out_back">
            <img src="img/2.jpg"  class="pic"/>
        </div>
        <!--左图片 -->
        <div class="out_left">
            <img src="img/3.jpg"  class="pic"/>
        </div>
        <div class="out_right">
            <img src="img/4.jpg"  class="pic"/>
        </div>
        <div class="out_top">
            <img src="img/5.jpg"  class="pic"/>
        </div>
        <div class="out_bottom">
            <img src="img/6.jpg"  class="pic"/>
        </div>
        <!--小正方体 -->
        <span class="in_front">
				<img src="img/7.jpg" class="in_pic" />
			</span>
        <span class="in_back">
			     <img src="img/8.jpg" class="in_pic" />
			</span>
        <span class="in_left">
				<img src="img/9.jpg" class="in_pic" />
			</span>
        <span class="in_right">
				<img src="img/10.jpg" class="in_pic" />
			</span>
        <span class="in_top">
				<img src="img/11.jpg" class="in_pic" />
			</span>
        <span class="in_bottom">
				<img src="img/12.jpg" class="in_pic" />
			</span>
    </div>
</div>
</body>
<html>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
旋转魔方阵的Python解决方案可以使用旋转矩阵的方法来实现。旋转矩阵可以看作是在矩阵中按照一定的顺序进行移动和替换操作。具体步骤如下: 1. 首先,创建一个空的NxN的矩阵,并初始化元素为1至N*N。 2. 定义四个变量,分别表示当前行、当前列、当前值和当前方向。初始时,当前行和当前列都为0,当前值为1,当前方向为向右。 3. 根据当前方向,判断下一个位置的行和列的变化。例如,如果当前方向为向右,则下一个位置的行保持不变,列增加1;如果当前方向为向下,则下一个位置的行增加1,列保持不变。 4. 判断下一个位置是否越界或者已经被填充过值,如果是,则改变当前方向。如果当前方向为向右,则改为向下;如果当前方向为向下,则改为向左;如果当前方向为向左,则改为向上;如果当前方向为向上,则改为向右。 5. 根据当前方向,更新当前行和当前列的值。 6. 将当前值填充到当前位置。 7. 判断当前值是否已经达到N*N,如果是,则结束;否则,增加当前值并继续下一步操作。 8. 重复步骤3至步骤7,直到所有位置都被填充。 以下是一个基于旋转矩阵的Python代码示例: ```python def rotate_matrix(N): matrix = [[0] * N for _ in range(N)] current_row, current_col = 0, 0 current_value = 1 directions = [(0, 1), (1, 0), (0, -1), (-1, 0)] current_direction = 0 while current_value <= N*N: matrix[current_row][current_col] = current_value next_row = current_row + directions[current_direction][0] next_col = current_col + directions[current_direction][1] if next_row < 0 or next_row >= N or next_col < 0 or next_col >= N or matrix[next_row][next_col] != 0: current_direction = (current_direction + 1) % 4 next_row = current_row + directions[current_direction][0] next_col = current_col + directions[current_direction][1] current_row = next_row current_col = next_col current_value += 1 return matrix N = int(input("请输入魔方阵的边长(2到9之间的整数):")) magic_square = rotate_matrix(N) for row in magic_square: print(row) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小*-^-*九

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值