<script setup>
import * as Three from 'three'
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'
import { onMounted, reactive, toRefs } from 'vue';
let scene = null,
camera = null,
renderer = null,
cube = null
const init = () => {
let container = document.getElementById('container');
scene = new Three.Scene()
camera = new Three.PerspectiveCamera(75, container.clientWidth / container.clientHeight, 0.01, 1000)
camera.position.set(0, 0, 10)
scene.add(camera)
const cubeGeometry = new Three.BoxGeometry(1, 1, 1)
const cubeMaterial = new Three.MeshNormalMaterial()
cube = new Three.Mesh(cubeGeometry, cubeMaterial)
scene.add(cube)
renderer = new Three.WebGLRenderer()
renderer.setSize(container.clientWidth, container.clientHeight)
container.appendChild(renderer.domElement);
const controls = new OrbitControls(camera, renderer.domElement)
const axesHelper = new Three.AxesHelper(5)
scene.add(axesHelper)
cube.rotation.set(Math.PI / 4, 0, 0, 'XZY')
}
let flag = true
const animate1 = (time) => {
requestAnimationFrame(animate1);
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
let t = time / 1000 % 5
cube.position.x = t * 1
renderer.render(scene, camera);
}
onMounted(() => {
init()
animate1()
})
</script>
<template>
<div id="container"></div>
</template>
<style scoped>
#container {
height: 100%;
}
</style>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通