旋转立方体:竞赛3分题的含金量 | 课型:实习课 | 建议课时:2节
两个240px彩色立方体分别绕Y轴、X轴旋转——竞赛真题完整复刻。
新窗口运行 下载源码<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Task 7 - 旋转立方体</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body { height: 100%; background: #29303b; display: flex;
align-items: center; justify-content: center; }
.cube { width: 240px; height: 240px; transform-style: preserve-3d;
transform: rotateX(-32deg) rotateY(-35deg); margin: 120px; position: relative; }
.cube > div { position: absolute; width: 240px; height: 240px; opacity: .9; }
span { display: block; width: 80px; height: 80px; float: left; border: 2px solid #fff; }
.front { background: #fa5252; transform: translateZ(120px); }
.back { background: #f76707; transform: translateZ(-120px); }
.right { background: #12b886; transform: rotateY(90deg) translateZ(120px); }
.left { background: #4c6ef5; transform: rotateY(90deg) translateZ(-120px); }
.top { background: #fab005; transform: rotateX(90deg) translateZ(120px); }
.bottom { background: #7950f2; transform: rotateX(90deg) translateZ(-120px); }
.rotateY > .cube { animation: rotateY 5s ease-in-out infinite; }
.rotateX > .cube { animation: rotateX 5s ease-in-out infinite; }
@keyframes rotateY {
0% { transform: rotateX(-32deg) rotateY(-35deg); } 25% { transform: rotateX(-32deg) rotateY(-125deg); }
50% { transform: rotateX(-32deg) rotateY(-215deg); } 75% { transform: rotateX(-32deg) rotateY(-305deg); }
100% { transform: rotateX(-32deg) rotateY(-395deg); } }
@keyframes rotateX {
0% { transform: rotateX(-32deg) rotateY(-35deg); } 25% { transform: rotateX(58deg) rotateY(-35deg); }
50% { transform: rotateX(148deg) rotateY(-35deg); } 75% { transform: rotateX(238deg) rotateY(-35deg); }
100% { transform: rotateX(328deg) rotateY(-35deg); } }
</style>
</head>
<body>
<div class="scene rotateY">
<div class="cube">
<div class="front"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
<div class="back"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
<div class="right"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
<div class="left"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
<div class="top"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
<div class="bottom"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
</div>
</div>
<div class="scene rotateX">
<div class="cube">
<div class="front"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
<div class="back"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
<div class="right"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
<div class="left"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
<div class="top"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
<div class="bottom"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
</div>
</div>
</body>
</html>任务目标:独立完成竞赛任务7旋转立方体并理解3D原理
| 任务内容与评分 |
|---|
| 任务1:写出六面装配的角度与位移推导(20分) |
| 任务2:搭建240px六色立方体静态结构(25分) |
| 任务3:为每面添加九宫格白框装饰(15分) |
| 任务4:实现绕Y轴5秒循环旋转(20分) |
| 任务5:实现第二个绕X轴旋转的立方体(20分) |