three.js使用超炫酷的鼠标跟随案例

2023-11-04 05:10

本文主要是介绍three.js使用超炫酷的鼠标跟随案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

three.js使用超炫酷的鼠标跟随案例

文章目录

  • three.js使用超炫酷的鼠标跟随案例
  • 前言
  • 一、效果展示
  • 二、直接上代码
    • 1.效果代码
    • 2.注意点
  • 总结


前言

three.js在浏览器中就能够简单和轻便渲染出3D场景.


一、效果展示

在这里插入图片描述

二、直接上代码

1.效果代码

<!DOCTYPE html>
<meta charset="utf-8">
<style>body {margin: 0;background: #111;min-width: 960px;
}</style>
<body>
<script src="//d3js.org/d3.v3.min.js"></script>
<script>var width = Math.max(960, innerWidth),height = Math.max(500, innerHeight);var x1 = width / 2,y1 = height / 2,x0 = x1,y0 = y1,i = 0,r = 200,τ = 2 * Math.PI;var canvas = d3.select("body").append("canvas").attr("width", width).attr("height", height).on("ontouchstart" in document ? "touchmove" : "mousemove", move);var context = canvas.node().getContext("2d");
context.globalCompositeOperation = "lighter";
context.lineWidth = 2;d3.timer(function() {context.clearRect(0, 0, width, height);var z = d3.hsl(++i % 360, 1, .5).rgb(),c = "rgba(" + z.r + "," + z.g + "," + z.b + ",",x = x0 += (x1 - x0) * .1,y = y0 += (y1 - y0) * .1;d3.select({}).transition().duration(2000).ease(Math.sqrt).tween("circle", function() {return function(t) {context.strokeStyle = c + (1 - t) + ")";context.beginPath();context.arc(x, y, r * t, 0, τ);context.stroke();};});
});function move() {var mouse = d3.mouse(this);x1 = mouse[0];y1 = mouse[1];d3.event.preventDefault();
}</script>

2.注意点

需要引入d3文件

<script src="//d3js.org/d3.v3.min.js"></script>

总结

参考文章:

https://blog.csdn.net/qq_26822029/article/details/91353209

本篇文章的思路很好

这篇关于three.js使用超炫酷的鼠标跟随案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/343466

相关文章

Java Jackson核心注解使用详解

《JavaJackson核心注解使用详解》:本文主要介绍JavaJackson核心注解的使用,​​Jackson核心注解​​用于控制Java对象与JSON之间的序列化、反序列化行为,简化字段映射... 目录前言一、@jsonProperty-指定JSON字段名二、@JsonIgnore-忽略字段三、@Jso

MySQL中隔离级别的使用详解

《MySQL中隔离级别的使用详解》:本文主要介绍MySQL中隔离级别的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录引言undo log的作用MVCC的实现有以下几个重要因素如何根据这些因素判断数据值?可重复读和已提交读区别?串行化隔离级别的实现幻读和可

使用Python和SQLAlchemy实现高效的邮件发送系统

《使用Python和SQLAlchemy实现高效的邮件发送系统》在现代Web应用中,邮件通知是不可或缺的功能之一,无论是订单确认、文件处理结果通知,还是系统告警,邮件都是最常用的通信方式之一,本文将详... 目录引言1. 需求分析2. 数据库设计2.1 User 表(存储用户信息)2.2 CustomerO

VSCode中配置node.js的实现示例

《VSCode中配置node.js的实现示例》本文主要介绍了VSCode中配置node.js的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一.node.js下载安装教程二.配置npm三.配置环境变量四.VSCode配置五.心得一.no

9个SpringBoot中的自带实用过滤器使用详解

《9个SpringBoot中的自带实用过滤器使用详解》在SpringBoot应用中,过滤器(Filter)是处理HTTP请求和响应的重要组件,SpringBoot自带了许多实用的过滤器,如字符编码,跨... 目录1. CharacterEncodingFilter - 字符编码过滤器功能和配置手动配置示例2

Redis持久化机制之RDB与AOF的使用

《Redis持久化机制之RDB与AOF的使用》:本文主要介绍Redis持久化机制之RDB与AOF的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis持久化机制-RDB与AOF一、RDB持久化机制1、RDB简介2、RDB的工作原理3、RDB的优缺点4

使用Python实现实时金价监控并自动提醒功能

《使用Python实现实时金价监控并自动提醒功能》在日常投资中,很多朋友喜欢在一些平台买点黄金,低买高卖赚点小差价,但黄金价格实时波动频繁,总是盯着手机太累了,于是我用Python写了一个实时金价监控... 目录工具能干啥?手把手教你用1、先装好这些"食材"2、代码实现讲解1. 用户输入参数2. 设置无头浏

Spring Boot 常用注解详解与使用最佳实践建议

《SpringBoot常用注解详解与使用最佳实践建议》:本文主要介绍SpringBoot常用注解详解与使用最佳实践建议,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、核心启动注解1. @SpringBootApplication2. @EnableAutoConfi

mysql递归查询语法WITH RECURSIVE的使用

《mysql递归查询语法WITHRECURSIVE的使用》本文主要介绍了mysql递归查询语法WITHRECURSIVE的使用,WITHRECURSIVE用于执行递归查询,特别适合处理层级结构或递归... 目录基本语法结构:关键部分解析:递归查询的工作流程:示例:员工与经理的层级关系解释:示例:树形结构的数

Redis中RedisSearch使用及应用场景

《Redis中RedisSearch使用及应用场景》RedisSearch是一个强大的全文搜索和索引模块,可以为Redis添加高效的搜索功能,下面就来介绍一下RedisSearch使用及应用场景,感兴... 目录1. RedisSearch的基本概念2. RedisSearch的核心功能(1) 创建索引(2