Heim > Web-Frontend > View.js > Hauptteil

So erstellen Sie coole rotierende 3D-Grafiken mit Vue und Canvas

WBOY
Freigeben: 2023-07-17 15:42:07
Original
2394 Leute haben es durchsucht

So erstellen Sie coole rotierende 3D-Grafiken mit Vue und Canvas

Einführung:
Vue und Canvas sind zwei sehr leistungsstarke Front-End-Technologien. Sie eignen sich gut für das Rendern von Seiten bzw. das Zeichnen von Bildern. In diesem Artikel erfahren Sie, wie Sie Vue und Canvas kombinieren, um coole rotierende 3D-Grafikeffekte zu erstellen. Wir werden untersuchen, wie man mit Vue eine grundlegende Seitenstruktur erstellt und wie man mit Canvas die Zeichen- und Rotationseffekte von 3D-Grafiken erzielt. Wenn Sie diesen Artikel lesen, werden Sie verstehen, wie Sie mit Vue und Canvas atemberaubende dynamische 3D-Effekte erstellen.

Text:
1. Erstellen Sie ein Vue-Projekt und erstellen Sie eine grundlegende Seitenstruktur.
Zuerst müssen wir ein Vue-Projekt erstellen Projekt und wechseln Sie zum Projektverzeichnis:

npm install -g @vue/cli
Nach dem Login kopieren

Als nächstes müssen wir einige notwendige Abhängigkeitspakete installieren, einschließlich Three.js und Canvas-Bibliotheken:

vue create 3d-rotation-graphic
cd 3d-rotation-graphic
Nach dem Login kopieren

Erstellen Sie eine neue Vue-Komponente RotationGraphic.vue und definieren Sie sie die Grundlagen darin Seitenstruktur:

npm install three vue-canvas
Nach dem Login kopieren

Der obige Code definiert eine Vue-Komponente RotationGraphic mit einem Canvas-Element und ruft init</code im <code>mount-Leben auf Cycle Hook >Methoden zum Initialisieren und Rendern von Grafiken. Im nächsten Abschnitt fügen wir den Code zum Zeichnen des Diagramms und zum Aktualisieren des Bildschirms hinzu. RotationGraphic.vue,并在其中定义基本页面结构:

<template>
  <div>
    <canvas ref="canvas"></canvas>
  </div>
</template>

<script>
import Vue from 'vue';
import { CanvasRenderer } from 'vue-canvas';
import * as THREE from 'three';

Vue.use(CanvasRenderer);

export default {
  name: 'RotationGraphic',
  mounted() {
    this.init();
  },
  methods: {
    init() {
      const canvas = this.$refs.canvas;
      const renderer = new THREE.WebGLRenderer({ canvas });
      // 绘制代码将在下一节中添加
      this.animate();
    },
    animate() {
      // 更新画面的代码将在下一节中添加
    }
  }
};
</script>

<style scoped>
canvas {
  width: 100%;
  height: 100%;
}
</style>
Nach dem Login kopieren

以上代码定义了一个带有一个canvas元素的Vue组件RotationGraphic,并在mounted生命周期钩子中调用init方法来初始化和渲染图形。在下一节中,我们将添加绘制图形和更新画面的代码。

二、在Canvas中绘制3D图形
我们将使用Three.js库中的BoxGeometryMeshBasicMaterial来绘制一个简单的立方体。在init方法中添加以下代码来绘制图形:

const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);

const geometry = new THREE.BoxGeometry(1, 1, 1);
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
camera.position.z = 5;

renderer.setSize(window.innerWidth, window.innerHeight);
Nach dem Login kopieren

以上代码创建了一个场景对象scene、一个摄像机对象camera和一个立方体对象cube,并将立方体添加到场景中。摄像机的位置被设置为(0, 0, 5),以便我们能够看到整个场景。最后,我们设置了渲染器的大小为窗口的宽度和高度。

三、实现画面的动态更新
为了实现图形的旋转效果,我们将在animate方法中更新立方体的旋转角度,并在每帧中重新渲染场景。使用下面的代码替换animate方法:

animate() {
  requestAnimationFrame(this.animate);
  cube.rotation.x += 0.01;
  cube.rotation.y += 0.01;
  renderer.render(scene, camera);
}
Nach dem Login kopieren

以上代码使用requestAnimationFrame方法在浏览器每一帧中调用animate方法。每一帧中,立方体的x和y方向的旋转角度都增加0.01弧度,并通过渲染器重新渲染场景。

四、在Vue应用中使用3D旋转图形组件
我们将使用RotationGraphic组件来演示3D旋转图形效果。在Vue项目的主组件中使用RotationGraphic组件,修改App.vue文件:

<template>
  <div id="app">
    <RotationGraphic/>
  </div>
</template>

<script>
import RotationGraphic from './components/RotationGraphic.vue';

export default {
  name: 'App',
  components: {
    RotationGraphic
  }
}
</script>

<style>
#app {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background-color: #f5f5f5;
}
</style>
Nach dem Login kopieren

以上代码在页面中添加了一个id为app的元素,将RotationGraphic组件添加到其中。通过CSS样式我们将页面居中并设置背景颜色。

结论:
通过本文的学习,我们了解了如何结合Vue和Canvas来创建炫酷的3D旋转图形效果。我们在Vue项目中创建了一个名为RotationGraphic

2. Zeichnen Sie 3D-Grafiken in Canvas

Wir verwenden BoxGeometry und MeshBasicMaterial in der Three.js-Bibliothek, um einen einfachen Würfel zu zeichnen. Fügen Sie den folgenden Code in die Methode init ein, um Grafiken zu zeichnen:

rrreee🎜Der obige Code erstellt ein Szenenobjekt scene, ein Kameraobjekt camera und ein Cube-Objekt cube und fügen Sie den Cube zur Szene hinzu. Die Position der Kamera ist auf (0, 0, 5) eingestellt, sodass wir die gesamte Szene sehen können. Abschließend stellen wir die Größe des Renderers auf die Breite und Höhe des Fensters ein. 🎜🎜3. Dynamische Aktualisierung des Bildes realisieren🎜Um den Rotationseffekt der Grafiken zu erzielen, aktualisieren wir den Rotationswinkel des Würfels in der Methode anime und rendern die Szene jeweils neu rahmen. Ersetzen Sie die Methode animate durch den folgenden Code: 🎜rrreee🎜Der obige Code verwendet die Methode requestAnimationFrame, um die Methode animate in jedem Frame des aufzurufen Browser. Mit jedem Frame wird der Rotationswinkel des Würfels in x- und y-Richtung um 0,01 Bogenmaß erhöht und die Szene wird durch den Renderer neu gerendert. 🎜🎜4. Verwendung der 3D-Rotationsgrafikkomponente in Vue-Anwendungen🎜Wir werden die RotationGraphic-Komponente verwenden, um den 3D-Rotationsgrafikeffekt zu demonstrieren. Verwenden Sie die Komponente RotationGraphic in der Hauptkomponente des Vue-Projekts und ändern Sie die Datei App.vue: 🎜rrreee🎜Der obige Code fügt eine ID von app hinzu. Fügen Sie dem Element page.code> die Komponente <code>RotationGraphic hinzu. Durch CSS-Stile zentrieren wir die Seite und legen die Hintergrundfarbe fest. 🎜🎜Fazit: 🎜Durch das Studium dieses Artikels haben wir gelernt, wie man Vue und Canvas kombiniert, um coole rotierende 3D-Grafikeffekte zu erstellen. Wir haben im Vue-Projekt eine Komponente mit dem Namen RotationGraphic erstellt, mit Three.js einen Würfel gezeichnet und den Rotationseffekt durch Aktualisierung des Rotationswinkels und des Renderers erzielt. Ich hoffe, dass die Einführung in diesem Artikel Ihnen helfen kann, die Vue- und Canvas-Technologie besser zu verstehen und anzuwenden, um beeindruckendere Front-End-Effekte zu erstellen. 🎜🎜Codebeispiel: https://github.com/your-username/3d-rotation-graphic🎜

Das obige ist der detaillierte Inhalt vonSo erstellen Sie coole rotierende 3D-Grafiken mit Vue und Canvas. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage