three实现三维小兔子月球上插旗子飘动动画效果代码

代码语言:html

所属分类:三维

代码描述:three实现三维小兔子月球上插旗子飘动动画效果代码

代码标签: three 三维 小兔子 月球 旗子 飘动 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >
<head>
  <meta charset="UTF-8">
<style>
    @import url("https://fonts.googleapis.com/css2?family=Asap&display=swap");
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html,
body {
  background: black;
  overscroll-behavior-x: none;
  overscroll-behavior-y: none;
}
body {
  font-family: "Asap", sans-serif;
  position: relative;
  width: 100vw;
  min-height: 100vh;
  text-align: center;
  overflow-x: hidden;
  background: black;
  color: white;
}

canvas {
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  position: fixed;
  width: 100vw;
  height: 100vh;
  top: 0;
  left: 0;
  z-index: 0;
}
main {
  position: relative;
}
section {
  position: relative;
  width: 100vw;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
</style>
</head>
<body>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/es-module-shims.1.6.2.js"></script>
<script type="importmap">
  {
    "imports": {      
      "three": "//repo.bfw.wiki/bfwrepo/js/module/three/build/159/three.module.js",
      "three/addons/": "//repo.bfw.wiki/bfwrepo/js/module/three/examples/159/jsm/"
    }
  }
</script>
<!-- partial -->
  <script type="module" >

"use strict";

import * as THREE from "three";

import { OrbitControls as e } from "three/addons/controls/OrbitControls.js";

import * as BufferGeometryUtils from "three/addons/utils/BufferGeometryUtils.js";

    import { ParametricGeometry as t } from "three/addons/geometries/ParametricGeometry.js";

import { ParametricGeometries as o } from "three/addons/geometries/ParametricGeometries.js";

!(function () {
  function s(e, t, o) {
    H.subVectors(t.position, e.position);
    const s = H.length();
    if (0 === s) return;
    const n = H.multiplyScalar(1 - o / s).multiplyScalar(0.5);
    e.position.add(n), t.position.sub(n);
  }
  function n() {
    (b.aspect = window.innerWidth / window.innerHeight),
      b.updateProjectionMatrix(),
      g.setSize(window.innerWidth, window.innerHeight);
  }
  function i(e) {
    requestAnimationFrame(i),
      (function (e) {
        T.set(100, 0, Math.sin(e / 1e3)), T.normalize(), T.multiplyScalar(300);
        const t = y.particles;
        if (a.enableWind) {
          let e;
          const o = new THREE.Vector3(),
            s = G.index,
            n = G.attributes.normal;
          for (let i = 0, a = s.count; i < a; i += 3)
            for (let a = 0; a < 3; a++)
              (e = s.getX(i +.........完整代码请登录后点击上方下载按钮下载查看

网友评论0