WebGL使用动画库( GSAP 一款基于 JavaScript 的 web动画库)

ops/2024/10/18 21:24:11/

安装

npm install gsap

使用

<template><div></div>
</template><script setup>
import * as THREE from 'three';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
// 导入动画
import gsap from 'gsap'// 场景
const scene = new THREE.Scene();// 模型
// 顶点着色器
const cubeGeometry = new THREE.BoxGeometry(1, 1, 1);
// 片元着色器
const cubeMaterial = new THREE.MeshBasicMaterial({ color: 0xffff00 });
// 着色器程序
const cube = new THREE.Mesh(cubeGeometry, cubeMaterial);
scene.add(cube);// 相机
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.set(0, 0, 10);
// scene.add(camera);// 辅助线
const axesHelper = new THREE.AxesHelper(5); // 长度
scene.add(axesHelper);// 初始化渲染器
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight); //设置three.js渲染区域的尺寸(像素px)
// 动态创建元素
document.body.appendChild(renderer.domElement);
renderer.render(scene, camera);// 相机围绕目标进行轨道运动
const controls = new OrbitControls(camera, renderer.domElement);// 设置动画   
const animate = gsap.to(cube.position, {x: 5,duration: 5, // 持续时间ease: 'power1.inOut', // 速率repeat: 2, // 重复次数, 无限次循环是-1yoyo: true, // 往返运动delay: 2, // 延迟时间onStart: () => {console.log('动画开始');},onComplete: () => {console.log('动画完成');}
}) // 移动
gsap.to(cube.rotation, { x: 2 * Math.PI, duration: 5 }) // 旋转
gsap.to(cube.scale, { x: 2, duration: 5 }) // 缩放// 双击暂停/启动
window.addEventListener('dblclick', () => {if (animate.isActive()) {animate.pause()} else {animate.resume()}
})// 浏览器动画
function render(time) {renderer.render(scene, camera);requestAnimationFrame(render);
}
render()
</script>

http://www.ppmy.cn/ops/16666.html

相关文章

判断水仙花数(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int n 0;int b 0;int s 0;int g 0;int m 0;//提示用户&#xff1b;printf("请输入…

C++:继承性

一、基本概念 一个基类可以派生多个派生类&#xff0c;一个派生类也可以由多个基类派生而成继承 单一继承多重继承继承方式&#xff08;缺省默认&#xff1a;private&#xff09; publicprivateprotected 公有继承 保护继承 私有继承 公有成员 publicprotectedprivate保护成员…

第一届长城杯半决赛wp和AWD笔记

目录 AWD 渗透 cfs 单节点1 AWD笔记 AWD工具 文件比较工具 Web漏洞扫描工具 waf工具 代码审计工具 批量网站备份文件泄露扫描工具 cms通杀漏洞的利用 通杀脚本和批量提交flag脚本 防御流程 攻击流程 注意 AWD 解题思路] 首先就是fscan快速扫描对应C段&#xf…

万兆以太网MAC设计(9)数据流仲裁模块

文章目录 一、模块接口二、模块功能描述2.1、实现思路 三、仿真3.1、仿真设计3.2、仿真波形 总结&#xff1a; 一、模块接口 c0和c1表示输入的俩个数据通道&#xff0c;c0优先级高&#xff0c;P_ARBITER_LAYER 表示当前是在IP层进行仲裁还是MAC层&#xff0c;可复用于俩个模块…

区块链安全应用-------压力测试

基于已有的链进行测试&#xff08;build_chain默认建的链 四个节 点&#xff09;&#xff1a; 第一步&#xff1a;搭链 1. 安装依赖 在ubuntu操作系统中&#xff0c;操作步骤如下&#xff1a; sudo apt install -y openssl curl 2. 创建操作目录, 下载安装脚本 ## 创建操作…

DevOps(十二)Jenkins实战之Web发布到远程服务器

前面两篇博文介绍了怎么将django开发的web应用推送到gitlab源码仓库&#xff0c;然后jenkins服务器从gitlab仓库拉下来&#xff0c;布署到jenkins服务器上&#xff0c;并用supervisor进行进程管理&#xff0c;保证web应用一直能正常运行&#xff0c;今天我们继续优化&#xff0…

构建数字化SaaS商城运营平台:规划框架探究

随着云计算、大数据和人工智能等新技术的快速发展&#xff0c;Software as a Service (SaaS) 模式在商业领域得到了广泛应用。数字化SaaS商城运营平台作为一种新型的商业模式&#xff0c;正在成为数字化时代企业发展的重要途径。本文将深入探讨数字化SaaS商城运营平台的规划框架…

【树莓派】yolov5 Lite,目标检测,行人检测入侵报警

延续之前的程序&#xff1a; https://qq742971636.blog.csdn.net/article/details/138172400 文章目录 播放声音pygame不出声音怎么办&#xff08;调节音量&#xff09;树莓派上的音乐播放器&#xff08;可选&#xff09;命令行直接放歌&#xff08;尝试放mp3歌曲&#xff09; …