返回

用 Three.js 给 ta 画个生日蛋糕,让你的生日祝福更加特别

前端

作为整天与 UI 打交道的前端工程师,是否想在他(她)生日的时候用代码送上一份惊喜呢?不妨用 Three.js 做个 3D 的蛋糕送给 ta,既浪漫又能展现你技术的魅力。这篇文章我们就来学习下如何用 Three.js 制作一个 3D 蛋糕。

准备工作

首先,你需要准备一些东西:

  • Three.js 库
  • 一个文本编辑器
  • 一个浏览器(推荐使用 Chrome 或 Firefox)

Three.js 库

Three.js 是一个用于创建和显示 3D 图形的 JavaScript 库。它可以让你轻松地创建各种 3D 对象,并使用动画效果使它们动起来。Three.js 的官方网站是 https://threejs.org/

文本编辑器

你将用文本编辑器来编写 Three.js 代码。推荐使用 Visual Studio Code、Atom 或 Sublime Text 等文本编辑器。

浏览器

你将使用浏览器来查看 Three.js 的效果。推荐使用 Chrome 或 Firefox 浏览器。

制作 3D 蛋糕

现在,让我们开始制作 3D 蛋糕。

  1. 创建一个新的项目

首先,你需要创建一个新的项目。在你的文本编辑器中,创建一个新的文件,并将其命名为 index.html

  1. 添加 Three.js 库

接下来,你需要将 Three.js 库添加到你的项目中。你可以从 Three.js 的官方网站下载库,也可以使用 CDN。

  1. 编写 Three.js 代码

现在,你可以开始编写 Three.js 代码了。在 index.html 文件中,添加以下代码:

<!DOCTYPE html>
<html>
<head>
  
  <meta charset="UTF-8">
</head>
<body>
  <script src="three.js"></script>
  <script>
    // 创建场景
    var scene = new THREE.Scene();

    // 创建相机
    var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
    camera.position.z = 5;

    // 创建渲染器
    var renderer = new THREE.WebGLRenderer();
    renderer.setSize(window.innerWidth, window.innerHeight);
    document.body.appendChild(renderer.domElement);

    // 创建蛋糕
    var geometry = new THREE.BoxGeometry(1, 1, 1);
    var material = new THREE.MeshLambertMaterial({ color: 0xff0000 });
    var cake = new THREE.Mesh(geometry, material);
    scene.add(cake);

    // 创建灯光
    var light = new THREE.PointLight(0xffffff, 1, 100);
    light.position.set(0, 0, 10);
    scene.add(light);

    // 渲染场景
    renderer.render(scene, camera);
  </script>
</body>
</html>
  1. 运行代码

现在,你可以运行代码了。在你的浏览器中,打开 index.html 文件。你应该会看到一个红色的 3D 蛋糕。

添加动画效果

现在,让我们给蛋糕添加一些动画效果。在 index.html 文件中,将以下代码添加到 script 标签中:

// 创建动画循环
function animate() {
  requestAnimationFrame(animate);

  // 旋转蛋糕
  cake.rotation.y += 0.01;

  // 渲染场景
  renderer.render(scene, camera);
}

// 启动动画循环
animate();

现在,当你运行代码时,你会看到蛋糕在旋转。

添加更多细节

现在,你可以给蛋糕添加更多细节。你可以添加蜡烛、糖霜、水果等装饰。你还可以改变蛋糕的颜色和形状。

完成

现在,你的 3D 蛋糕就完成了。你可以将它保存为一个 HTML 文件,并发送给 ta。ta 一定会很喜欢这份特别的生日礼物。