three.jsgsap滚动交互网页实现 1-模糊背景线条

news2024/9/22 15:28:30

在这里插入图片描述

实现
模型只有其中的一根线条 加载完模型后 将其圆形排列一周
要实现圆形排列一周可以自己计算sin和cos实现,更简单的可以使用vector3的setFromCylindricalCoords方法实现
该方法计算返回圆柱上的点,圆柱上的点由参数决定
使用方法:

    for (let i = 0; i < 36; i++) {
        const box = new THREE.Mesh(
            new THREE.BoxGeometry(1, 1, 0.1),
            new THREE.MeshStandardMaterial()
        );

        helper.add(box);
        box.position.setFromCylindricalCoords(
            10,
            (360 / 36) * i * (Math.PI / 180),
            0
        );
    }

即可实现如下排列一周效果
在这里插入图片描述

如果要每个位置朝向内 可以将角度设置给rotation

	box.rotation.y = (360 / 36) * i * (Math.PI / 180);

在这里插入图片描述
应用到模型上
创建一个group作为所有线条的容器方便整体位置调整
并在循环中使用clone方法创建实例 然后设置点的位置
因为模型是横着的 所有将其旋转90度

 helper.loadGltf("/models/line_bg.glb").then((gltf) => {
        const mesh = gltf.scene.getObjectByName("line_bg") as Mesh;

        const group = new THREE.Group();
        helper.add(group);

        for (let i = 0; i < 36; i++) {
            const item = mesh.clone();
            group.add(item);
            item.position.setFromCylindricalCoords(
                10,
                (360 / 36) * i * (Math.PI / 180),
                0
            );
            item.rotateX(Math.PI / 2);
        }
    });

如下效果
在这里插入图片描述

让其横过来并让其靠近一点

group.rotateX(Math.PI / 2);
group.position.z = 100;

在这里插入图片描述
调整缩放和一点点位置的偏移让其产生错乱的感觉

item.scale.x = Math.random() * 2;
item.scale.y = Math.random() * 2;
item.position.addScalar((0.5 - Math.random()) * 2);
item.position.z += (0.5 - Math.random()) * 10;

在这里插入图片描述
最后让其之显示中间部分 使用聚光灯SpotLight

const spotLight = new THREE.SpotLight(new THREE.Color("#ffffff"), 2);

将其添加到相机 然后将相机添加到scene中,这样相机更灵活随着视角移动

helper.camera.add(spotLight);
helper.add(helper.camera);

至此并没有什么明显变化
在这里插入图片描述
设置聚光灯的角度,将其照射范围缩小

spotLight.angle = 0.3;

在这里插入图片描述
如此只有中间部分有灯光 才可以显示 但是边缘很硬没有模糊的感觉
设置光影衰减属性默认为0不衰减 取值范围0-1 将其设置为1

spotLight.penumbra = 1;

在这里插入图片描述
ok静态效果实现 下面加入 入场动画 由远及近

gsap.to(group.position, { z: 100, duration: 1 });

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/728974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

监听DOM尺寸变化 - ResizeObserver

一、与 MutationObserver Api的区别 MutationObserver 主要用来监听 DOM 元素的属性和节点变化的&#xff0c;非 DOM 样式尺寸&#xff0c;可查看之前一篇 blog - DOM规范 - MutationObserver接口观察DOM元素的属性和节点变化ResizeObserver 主要用来监听 DOM 元素的 内容区域…

Stable Diffusion WebUI 不同采样方法的效果、耗时对比记录

测试方法 所有测试除了采样方法调整&#xff0c;其他均保持一致。主要参数信息如下 1girl, 3d, architecture, blurry, blurry background, blurry foreground, breasts, brown hair, building, cherry blossoms, city, cityscape, cosplay photo, cowboy shot, day, depth o…

hive2.3.7安装部署-问题:show databases;没反应

目录 一、安装包准备 二、安装mysql 三、hive安装 四、hive启动 五、问题 环境&#xff1a;CentOS7.2.xx、hadoop2.6.4、jdk1.8.0xx、mysql-5.7.38 hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射成一张表&#xff0c;并提供类SQL查询功能。…

【计算机组成原理期末课设作业】16位微型计算机实现——MOVS串传送扩展指令设计

16位微型计算机实现——MOVS串传送扩展指令设计&#x1f60e; 前言&#x1f64c;教学目的&#xff1a;1、数据**加粗样式**通路分析2、微程序控制器分析3、指令系统分析4、微程序控制器指令周期流程图5、微指令编码6、测试程序和运行结果&#xff08;1&#xff09;首先先在内存…

asp.net core 框架搭建2-搭建MVC后台管理系统

文章目录 系列文章1.项目搭建1.1 新建Asp.net core MVC项目1.2 ASP.NET Core MVC目录结构1.3 创建一个控制器&#xff0c;与页面数据交互1.4 实现一个登录页面1.5 实现后台管理主界面 2.过程中知识点和涉及到的问题2.1 session的使用2.2 EF Core连接mysql 源码下载 作者&#x…

机器学习29:《推荐系统-II》协同过滤

在《机器学习28&#xff1a;《推荐系统-I》概述》一文中&#xff0c;笔者介绍了“基于内容过滤&#xff08;content-based filtering&#xff09;”和“协同过滤&#xff08;Collaborative Filtering&#xff09;”两种常见的【候选 Item 池】生成方法。其中&#xff0c;基于内…

android studio使用Flutter Inspector调试布局

1、点击anroid studio右侧的Flutter Inspector按钮 2、点击展开布局右上角的‘Select Widget Mode’&#xff0c;即可实现点击相关节点&#xff0c;真机上可以看到相关的方框 如下图

月薪65k的大厂项目经理,是种什么体验

早上好&#xff0c;我是老原。 之前给大家更新了几期关于项目管理行业的面试题&#xff0c;又值一年毕业季&#xff0c;想入行的新手小白&#xff0c;或者想跳槽的行业大佬可以码起来了。 有很多粉丝朋友都在后台给我留言&#xff0c;想看云计算行业的岗位分析&#xff0c;今…

前端开发:JS中常用事件汇总

前言 在前端开发中&#xff0c;关于事件相关的操作是非常常见的操作&#xff0c;尤其是实际业务场景中涉及复杂交互的需求。在JS中比较常用的事件有很多&#xff0c;而且涉及不同方式不同类型的点击事件&#xff0c;一般情况下事件会和函数结合使用&#xff0c;这就是事件和函数…

Python 背包问题

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

MySQL阶段DAY20(附笔记)

【注意】&#xff1a;工厂模式学习知识结构如下&#xff1a; &#xff08;一&#xff09;、单例模式 1.Single类&#xff1a; 使用懒汉式&#xff1a;对象的延迟加载&#xff0c;安全的&#xff0c;高效的应用 双重判断提升效率和安全性 package singleton;/** 单例设计模式之…

Prisma 国内镜像设置

背景 相信大家在体验完 prisma 后&#xff0c;一般都是会感觉开发起来很方便&#xff0c;功能使用起来很顺畅很爽&#xff0c;但是想推广起来团队内使用的时候发现。。。 原因是prisma client 需要下载几个引擎&#xff0c;在其他没有翻墙工具的小伙伴使用的时候发现一直下不下…

供应商管理解决方案实战指南:打造高效供应链

在现代商业环境中&#xff0c;供应商管理是企业成功运营的关键因素之一。随着全球化和供应链的复杂性不断增加&#xff0c;供应商管理面临着许多挑战&#xff0c;如供应商选择、供应商绩效评估和供应链风险管理等。为了解决这些挑战&#xff0c;企业需要采取一系列的解决方案&a…

Sui x KuCoin Labs夏季黑客松第四批入围项目公布

自Sui x KuCoin Labs夏季黑客松开放注册以来&#xff0c;收获了众多开发者的关注和报名参与。现在比赛的报名阶段已结束&#xff0c;截至目前为止&#xff0c;我们已经公布了三批入围项目名单&#xff0c;现在第四批入围名单项目新鲜出炉&#xff0c;最后一轮入围结果将于7月12…

十、HTML中的浮动

1、浮动 1、浮动 块级元素 独占一行 若块级元素宽度较少时&#xff0c;导致后续是空白 布局 先整体&#xff0c;后局部 先简单&#xff0c;再复杂 复杂再划分 整体布局 局部 2、float属性 浮动飘 float属性 让网页元素按照标准文档流方式显示 自上到下&#xff0c;…

19.内部温度传感器

1.STM32内部温度传感器介绍&#xff1a; 内部温度传感器支持的温度范围为&#xff1a;-40~125度&#xff0c;精度为1.5℃左右&#xff1b;T(℃){(V25-Vsense)/Avg_Slope}25;STM32的内部温度传感器是直接连接在ADC内部输入通道&#xff0c;在ADC1通道16连接的内部温度传感器&am…

Django基础入门⑬:Cookie和Session详讲和Django HTML表单实战讲解

Django基础入门⑫&#xff1a;Django 对象查询详解&#xff0c;分组聚合 Cookie和SessionCookie简述Session使用Session的定义理解Session的作用 Session配置Session的基本操作Session在settings.py中的配置Cookie和Session的区别 Django HTML表单实战HTML表单实现用户的登录实…

基于混沌集成决策树的电能质量复合扰动识别(matlab代码)

目录 1 主要内容 2 部分代码 3 程序结果 4 程序链接 1 主要内容 该程序参考《基于混沌集成决策树的电能质量复合扰动识别》&#xff0c;主要做的是S变换电能质量扰动识别&#xff0c;通过S变换对电能质量扰动&#xff08;谐波&#xff0c;闪变&#xff0c;暂升等单一扰动和…

15 | 边界:微服务的各种边界在架构演进中的作用?

目录 演进式架构 微服务还是小单体&#xff1f; 微服务边界的作用 逻辑边界 物理边界 代码边界 正确理解微服务的边界 总结 那重点落到边界的时候&#xff0c;总结一下就是&#xff0c;微服务的设计要涉及到逻辑边界、物理边界和代码边界等等。 那么这些边界在微服务架…

vue清除地址栏参数(可以单个,可以多个)

需求 vue跳转新页面后&#xff0c;清除url里面的参数&#xff0c;就是上一个页面带过来的参数&#xff0c;只用一次 mounted () {this.$nextTick(() > {let url this.getnewurl()window.history.replaceState(null, null, url);})},methods: { //根据参数名去清除&#xf…