国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

three.js 使用 tweenjs繪制相機(jī)運(yùn)動動畫

這篇具有很好參考價(jià)值的文章主要介紹了three.js 使用 tweenjs繪制相機(jī)運(yùn)動動畫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

效果:

three.js 使用 tweenjs繪制相機(jī)運(yùn)動動畫,three.js,javascript,數(shù)碼相機(jī),開發(fā)語言

代碼:

<template>
  <div>
    <el-container>
      <el-main>
        <div class="box-card-left">
          <div id="threejs" style="border: 1px solid red"></div>
          <div class="box-right">
            <el-button type="primary" @click="start">直線運(yùn)動開始</el-button>
            <el-button type="primary" @click="start2">圓周運(yùn)動開始</el-button>
            <div style="text-align:left;font-size:18px;width:500px;white-space: wrap;padding:10px;">
              twwenjs庫提供了onStart、onUpdate、onComplete等用于控制動畫執(zhí)行的回調(diào)函數(shù)。
              <br>
              onStart:動畫開始執(zhí)行觸發(fā)
              <br>
              onUpdate:動畫執(zhí)行過程中,一直被調(diào)用執(zhí)行
              <br>
              onComplete:動畫正常執(zhí)行完觸發(fā)
            </div>
          </div>
        </div>
      </el-main>
    </el-container>
  </div>
</template>
<script>
// 引入軌道控制器擴(kuò)展庫OrbitControls.js
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
import TWEEN from "@tweenjs/tween.js";

export default {
  data() {
    return {
      scene: null,
      camera: null,
      renderer: null,
      mesh: null,
      geometry: null,
      group: null,
      material: null,
      clock: null,
      mixer: null,
    };
  },
  created() {},
  mounted() {
    this.name = this.$route.query.name;
    this.init();
  },
  methods: {
    goBack() {
      this.$router.go(-1);
    },
    init() {
      this.scene = new this.$three.Scene();
      const axesHelper = new this.$three.AxesHelper(100);
      this.scene.add(axesHelper);
        // 創(chuàng)建立方緩存幾何體對象
      this.geometry = new this.$three.BoxGeometry(50,50,50);
      // 創(chuàng)建材質(zhì)對象
      this.material = new this.$three.MeshBasicMaterial({
        color: 0xff11aa
      });
      // 創(chuàng)建網(wǎng)格模型
      this.mesh = new this.$three.Mesh(this.geometry, this.material);
      this.scene.add(this.mesh);
      this.camera = new this.$three.PerspectiveCamera(60,1,0.01,2000);
      this.camera.position.set(100,100,100);
      this.camera.lookAt(0,0,0);
      const helper = new this.$three.CameraHelper( this.camera );
      this.scene.add( helper );
      this.renderer = new this.$three.WebGLRenderer();
      this.renderer.setSize(1000,800);
      this.renderer.render(this.scene, this.camera);
      window.document.getElementById("threejs").appendChild(this.renderer.domElement);
      // 創(chuàng)建相機(jī)空間軌道控制器對象
      const controls = new OrbitControls(this.camera, this.renderer.domElement);
      controls.addEventListener("change", () => {
        this.renderer.render(this.scene, this.camera);
      })
    },
    start() {
      const tween = new TWEEN.Tween(this.camera.position);
      tween.to({x:150,y:150,z:150}, 2000);
      tween.start();
      this.camera.lookAt(0,0,0);
      this.loop();
    },
    loop() {
      this.renderer.render(this.scene, this.camera);
      TWEEN.update();
      window.requestAnimationFrame(this.loop);
    },
    start2() {
      const R = 100;
      const tween = new TWEEN.Tween({angle: 0});
      tween.to({angle: Math.PI * 2}, 6000).onUpdate(obj => {
        this.camera.position.x = R * Math.cos(obj.angle);
        this.camera.position.z = R * Math.sin(obj.angle);
      this.camera.lookAt(0,0,0);
      })
      tween.start();
      this.loop();
    }
  },
};
</script>
//
<style lang="less" scoped>
.box-card-left {
  display: flex;
  align-items: flex-start;
  flex-direction: row;

  width: 100%;

  .box-right {
    img {
      width: 500px;
      user-select: none;
    }
  }
}
</style>

?文章來源地址http://www.zghlxwxcb.cn/news/detail-799729.html

到了這里,關(guān)于three.js 使用 tweenjs繪制相機(jī)運(yùn)動動畫的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Three.js——十五、Box3、相機(jī)動畫、lookAt()視線方向、管道漫游案例、OrbitControls旋轉(zhuǎn)縮放限制、以及相機(jī)控件MapControls

    Three.js——十五、Box3、相機(jī)動畫、lookAt()視線方向、管道漫游案例、OrbitControls旋轉(zhuǎn)縮放限制、以及相機(jī)控件MapControls

    正投影相機(jī)和透視相機(jī)的區(qū)別 如果都以高處俯視去看整個場景,正投影相機(jī)就類似于 2d 的可視化的效果,透視相機(jī)就類似于人眼觀察效果 調(diào)整 left, right, top, bottom 范圍大小 如果你想整體預(yù)覽全部立方體,就需要調(diào)整相機(jī)的渲染范圍,比如設(shè)置上下左右的范圍。 使用場景:正

    2024年02月04日
    瀏覽(53)
  • Three.js使用OrbitControls后修改相機(jī)旋轉(zhuǎn)方向無效

    ? ? ? ? 在項(xiàng)目中添加了OrbitControls控制器來控制相機(jī)的旋轉(zhuǎn)和平移,但是需要修改初始的相機(jī)角度,于是我把相機(jī)的角度進(jìn)行修改,如下: 運(yùn)行項(xiàng)目后發(fā)現(xiàn)相機(jī)的位置并沒有發(fā)生變化。原因是相機(jī)旋轉(zhuǎn)和移動被OrbitControls控制器托管了。 ? ? ? ? 方法1.于是我嘗試創(chuàng)建一個組

    2024年02月16日
    瀏覽(30)
  • Three.js使用OrbitControls(控制器)后修改相機(jī)旋轉(zhuǎn)方向無效問題

    Three.js使用OrbitControls(控制器)后修改相機(jī)旋轉(zhuǎn)方向無效問題

    ? ? ? ? 當(dāng)我們在項(xiàng)目使用 OrbitControls(控制器)來控制相機(jī)進(jìn)行旋轉(zhuǎn)的時候不可避免就會遇到一個問題,修改相機(jī)的 lookAt 和 rotation 無效~ 通過?lookAt、和rotation對相機(jī)的旋轉(zhuǎn)進(jìn)行操作后發(fā)現(xiàn)相機(jī)的位置和角度并沒有發(fā)生變化,原因是當(dāng)前相機(jī)已經(jīng)被?OrbitControls 控制器托管

    2024年04月10日
    瀏覽(93)
  • vue3中使用Three.js及ROS2繪制機(jī)器人3D圖形

    要實(shí)現(xiàn)機(jī)器人3D位置的顯示,你需要使用ROS2和Vue3結(jié)合開發(fā)。 首先,在Vue3中創(chuàng)建一個3D場景,你可以使用Three.js庫來創(chuàng)建。Three.js是一個用于創(chuàng)建和渲染3D圖形的JavaScript庫,可以輕松創(chuàng)建3D場景、3D對象、光線等。 接下來,在Vue3中使用ROS2提供的 roslibjs 庫,訂閱機(jī)器人的位置信

    2024年02月03日
    瀏覽(137)
  • three.js 汽車行駛動畫效果

    three.js 汽車行駛動畫效果

    實(shí)現(xiàn)原理是使用TWEEN.Tween實(shí)現(xiàn)動畫效果 使用Promise編寫模型的異步加載方法 參數(shù)position是汽車初始位置,參數(shù)rotation是汽車初始朝向 調(diào)用: 第1個參數(shù)是汽車初始位置,第2個參數(shù)表示汽車初始朝向:西 參數(shù)start是行駛起點(diǎn)位置,參數(shù)end是行駛終點(diǎn)位置,參數(shù)speed是速度 this.mod

    2024年02月05日
    瀏覽(24)
  • three.js進(jìn)階之動畫系統(tǒng)

    three.js進(jìn)階之動畫系統(tǒng)

    我曾在three.js進(jìn)階之骨骼綁定文章中提到了AnimationMixer、AnimationAction等內(nèi)容,其實(shí)這些應(yīng)該屬于Three.js的動畫系統(tǒng),本文就系統(tǒng)的介紹一下動畫系統(tǒng)(Animation System)。 一般情況下,我們很少會使用three.js的動畫系統(tǒng)去手動創(chuàng)建動畫——因?yàn)檫@真的很麻煩,更高效便捷的做法還是

    2024年02月02日
    瀏覽(24)
  • 【前端動畫】—— 再看tweenJS

    16開始接觸前端,一直對一個問題特別感興趣,那就是js動畫,也就是從那時起開始探究動畫的各種表現(xiàn)形式,也是那個時候開始意識到編程這塊東西最終考驗(yàn)的就是 抽象和邏輯 ,而這一切完全是數(shù)學(xué)里邊的東西。 最早接觸tweenJS是去年還是前年來著有點(diǎn)忘了,不過當(dāng)時有點(diǎn)

    2024年02月08日
    瀏覽(17)
  • Three.js -相機(jī)平滑移動

    一、安裝 二、引入 三、使用 最后不要忘了在render中執(zhí)行 TWEEN.update();

    2024年02月13日
    瀏覽(92)
  • Three.js 模型加載及加載簡單動畫

    Three.js 模型加載及加載簡單動畫

    時間過的好快啊~再一次感嘆,忙忙碌碌一年又過去了,新年第一帖,新的一年也要加油呀! 簡單介紹下Three.js吧,Three.js是基于原生WebGL封裝運(yùn)行的三維引擎,在所有WebGL引擎中,Three.js是國內(nèi)文資料最多、使用最廣泛的三維引擎。因?yàn)槭褂煤唵?,入門比較容易。 Three.js的具體

    2024年02月12日
    瀏覽(24)
  • Three.js基礎(chǔ)入門介紹——Three.js學(xué)習(xí)三【借助控制器操作相機(jī)】

    Three.js基礎(chǔ)入門介紹——Three.js學(xué)習(xí)三【借助控制器操作相機(jī)】

    在Three.js基礎(chǔ)入門介紹——Three.js學(xué)習(xí)二【極簡入門】中介紹了如何搭建Three.js開發(fā)環(huán)境并實(shí)現(xiàn)一個包含旋轉(zhuǎn)立方體的場景示例,以此為前提,本篇將引進(jìn)一個控制器的概念并使用”軌道控制器”(OrbitControls)來達(dá)到從不同方向展示場景內(nèi)容的效果。 Three.js的控制器 three.js的核

    2024年02月04日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包