超级漂亮的 Ai 官网源码

超级漂亮的 AI 官网源码

  • 效果图
  • 部分源码
  • 领取源码
  • 下期更新预报

效果图

在这里插入图片描述在这里插入图片描述
在这里插入图片描述


部分源码

<script lang="js">function project3D(x, y, z, vars) {var p, dx -= vars.camXy -= vars.camY - 8z -= vars.camZp = Math.atan2(x, z)d = Math.sqrt(x * x + z * z)x = Math.sin(p - vars.yaw) * dz = Math.cos(p - vars.yaw) * dp = Math.atan2(y, z)d = Math.sqrt(y * y + z * z)y = Math.sin(p - vars.pitch) * dz = Math.cos(p - vars.pitch) * dvar rx1 = -1000var ry1 = 1var rx2 = 1000var ry2 = 1var rx3 = 0var ry3 = 0var rx4 = xvar ry4 = zvar uc = (ry4 - ry3) * (rx2 - rx1) - (rx4 - rx3) * (ry2 - ry1)var ua = ((rx4 - rx3) * (ry1 - ry3) - (ry4 - ry3) * (rx1 - rx3)) / ucvar ub = ((rx2 - rx1) * (ry1 - ry3) - (ry2 - ry1) * (rx1 - rx3)) / ucif (!z) z = 0.000000001if (ua > 0 && ua < 1 && ub > 0 && ub < 1) {return {x: vars.cx + (rx1 + ua * (rx2 - rx1)) * vars.scale,y: vars.cy + (y / z) * vars.scale,d: x * x + y * y + z * z,}} else {return { d: -1 }}}function elevation(x, y, z) {var dist = Math.sqrt(x * x + y * y + z * z)if (dist && z / dist >= -1 && z / dist <= 1) return Math.acos(z / dist)return 0.00000001}function rgb(col) {col += 0.000001var r = parseInt((0.5 + Math.sin(col) * 0.5) * 16)var g = parseInt((0.5 + Math.cos(col) * 0.5) * 16)var b = parseInt((0.5 - Math.sin(col) * 0.5) * 16)return '#' + r.toString(16) + g.toString(16) + b.toString(16)}function interpolateColors(RGB1, RGB2, degree) {var w2 = degreevar w1 = 1 - w2return [w1 * RGB1[0] + w2 * RGB2[0],w1 * RGB1[1] + w2 * RGB2[1],w1 * RGB1[2] + w2 * RGB2[2],]}function rgbArray(col) {col += 0.000001var r = parseInt((0.5 + Math.sin(col) * 0.5) * 256)var g = parseInt((0.5 + Math.cos(col) * 0.5) * 256)var b = parseInt((0.5 - Math.sin(col) * 0.5) * 256)return [r, g, b]}function colorString(arr) {var r = parseInt(arr[0])var g = parseInt(arr[1])var b = parseInt(arr[2])return ('#' +('0' + r.toString(16)).slice(-2) +('0' + g.toString(16)).slice(-2) +('0' + b.toString(16)).slice(-2))}function process(vars) {if (vars.points.length < vars.initParticles)for (var i = 0; i < 5; ++i) spawnParticle(vars)var p, d, tp = Math.atan2(vars.camX, vars.camZ)d = Math.sqrt(vars.camX * vars.camX + vars.camZ * vars.camZ)d -= Math.sin(vars.frameNo / 80) / 25t = Math.cos(vars.frameNo / 300) / 165vars.camX = Math.sin(p + t) * dvars.camZ = Math.cos(p + t) * dvars.camY = -Math.sin(vars.frameNo / 220) * 15vars.yaw = Math.PI + p + tvars.pitch = elevation(vars.camX, vars.camZ, vars.camY) - Math.PI / 2var tfor (var i = 0; i < vars.points.length; ++i) {x = vars.points[i].xy = vars.points[i].yz = vars.points[i].zd = Math.sqrt(x * x + z * z) / 1.0075t = 0.1 / (1 + (d * d) / 5)p = Math.atan2(x, z) + tvars.points[i].x = Math.sin(p) * dvars.points[i].z = Math.cos(p) * dvars.points[i].y +=vars.points[i].vy * t * ((Math.sqrt(vars.distributionRadius) - d) * 2)if (vars.points[i].y > vars.vortexHeight / 2 || d < 0.25) {vars.points.splice(i, 1)spawnParticle(vars)}}}function drawFloor(vars) {var x, y, z, d, point, afor (var i = -25; i <= 25; i += 1) {for (var j = -25; j <= 25; j += 1) {x = i * 2z = j * 2y = vars.floord = Math.sqrt(x * x + z * z)point = project3D(x, y - (d * d) / 85, z, vars)if (point.d != -1) {size = 1 + 15000 / (1 + point.d)a = 0.15 - Math.pow(d / 50, 4) * 0.15if (a > 0) {vars.ctx.fillStyle = colorString(interpolateColors(rgbArray(d / 26 - vars.frameNo / 40),[0, 128, 32],0.5 + Math.sin(d / 6 - vars.frameNo / 8) / 2))vars.ctx.globalAlpha = avars.ctx.fillRect(point.x - size / 2,point.y - size / 2,size,size)}}}}

领取源码

领取地址:https://www.123pan.com/s/ji8kjv-12PU3.html


下期更新预报

手把手教会你拥有自己的Ai

  • 📢博客主页:孤客网络科技工作室官方账号
  • 📢欢迎点赞👍收藏⭐️留言 📝如有错误敬请指正!
  • 📢本文由孤客原创,若侵权联系作者,首发于CSDN博客
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更好的生活💻

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

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

相关文章

List/ConcurrentBag Contains的效率比Dictionary/ConcurrentDictionary ContainsKey 低几千倍

测试目标&#xff1a; 用两组 50000 个字符串做包含(Contains)判断&#xff0c;分析性能差异。 50000个字符串集合测试结果&#xff1a; Dictionary/ConcurrentDictionary 能在1-2毫秒完成50000个字符串集合的包含判断&#xff1b; List 需要3秒&#xff0c;ConcurrentBag需要…

白话机器学习4:小波分解的原理与Python代码实现

小波去噪可以想象成使用一把“筛子”来过滤信号。这个“筛子”能够根据信号的不同频率成分&#xff0c;将其分解成多个层次。在这个过程中&#xff0c;信号的重要信息通常包含在低频部分&#xff0c;而噪声则多分布在高频部分。 将信号通过这个“筛子”分解后&#xff0c;我们可…

leetcode-最长公共子序列(二)-103

题目要求 思路 step 1&#xff1a;优先检查特殊情况。 step 2&#xff1a;获取最长公共子序列的长度可以使用动态规划&#xff0c;我们以dp[i][j]dp[i][j]dp[i][j]表示在s1中以iii结尾&#xff0c;s2中以jjj结尾的字符串的最长公共子序列长度。 step 3&#xff1a;遍历两个字…

同为科技详解智能PDU所应用的通信协议与接口

现如今&#xff0c;信息服务、AI人工智能的飞速发展与增长&#xff0c;全球正经历信息数据的爆炸。不仅数据量以惊人的速度增长&#xff0c;而且全球社会各行业对数据的依赖的程度也在日益增加。这些趋势使数据中心在全球都享有关键基础架构的地位。假设某个数据中心发生严重的…

数据采集为什么会用到代理IP?

在数据采集中&#xff0c;代理IP是指通过使用代理服务器来隐藏或更改真实的IP地址&#xff0c;以访问目标网站或服务器。那么&#xff0c;数据采集为什么会用到代理IP呢&#xff1f;使用代理IP通常用于匿名地访问网站、绕过访问限制或提高数据采集的效率和安全性。 代理服务器作…

HCIA和HCIP区别大吗?小白请看这

华为认证以其专业性和实用性受到了业界的广泛认可。 HCIA、HCIP、HCIP这三个级别&#xff0c;你会选哪个&#xff1f;IE含金量不用多说&#xff0c;IA还是IP&#xff0c;你会纠结吗。 但面对这两个级别的认证&#xff0c;初学者或者“小白”们可能会感到困惑&#xff1a;两者…

以大开放促进大开发 | 陕西粮农集团携手开源网安引领新时代西部大开发

​5月13日&#xff0c;开源网安与陕西粮农集团成功签署战略合作协议。双方将在网络安全保障体系建设及人才培养领域展开深度合作&#xff0c;共同筑牢陕西省数字经济建设安全屏障。陕西省粮农信息技术有限公司总经理解玮峰、陕西省粮农信息技术有限公司安全事业部负责人马德君、…

易康001:易康多尺度分割结果异常

前言 易康是一种在遥感领域常用的数据处理软件&#xff0c;它主要是用于面向对象的分类&#xff0c;涵盖了分割、模糊分类、监督分类等流程。但是在进行多尺度分割时&#xff0c;往往会遇到一些问题&#xff0c;例如下面图片所示&#xff1a; 1 多尺度分割问题 这种问题一般是…

品鉴中的品鉴笔记:如何记录和分享自己的品鉴心得

品鉴云仓酒庄雷盛红酒的过程&#xff0c;不仅是品尝美酒&#xff0c;更是一次与葡萄酒深度对话的旅程。为了更好地记录和分享自己的品鉴心得&#xff0c;养成写品鉴笔记的习惯是十分必要的。 首先&#xff0c;选择一个适合的记录工具。可以是传统的笔记本&#xff0c;也可以是…

3DGS+3D Tiles融合已成 ,更大的场景,更细腻的效果~

最近国外同行Kieran Farr发布了一个他制作的3D GussianSplatting(高斯泼溅)Google Map 3D Tiles的融合叠加的demo案例&#xff08;如下所示&#xff09;。 准确来说这是一个数据融合的实景场景&#xff0c;该实景场景使用了倾斜三维和3D GussianSplatting两种实景表达技术&…

内存卡惊现0字节!数据丢失怎么办?

在日常使用电子设备的过程中&#xff0c;有时我们会遇到一个令人困惑的问题——内存卡突然变成了0字节。这意味着原本存储在内存卡中的数据似乎在一夜之间消失得无影无踪&#xff0c;给用户带来极大的困扰。本文将详细解析内存卡0字节现象&#xff0c;探究其原因&#xff0c;并…

【高阶数据结构】并查集 {并查集原理;并查集优化;并查集实现;并查集应用}

一、并查集原理 在一些应用问题中&#xff0c;需要将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个单元素集合&#xff0c;然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述这类…

构建NFS远程共享存储

目录 一. NFS介绍 二. 网络附加存储&#xff08;NAS&#xff09;设备 三. 远程过程调用 四. 实验测试 4.1 nfs-server操作 4.1.1 新建一个目录作为共享 4.1.2 新增一个磁盘作为共享 4.2 web1 客户端操作 一. NFS介绍 NFS&#xff08;Network File System&#xff09…

UTONMOS探索元宇宙:开启未来数字世界的无限可能

在科技的浪潮中&#xff0c;元宇宙如同一颗璀璨的星辰&#xff0c;冉冉升起&#xff0c;吸引着无数人的目光。 元宇宙&#xff0c;一个超越现实的数字世界&#xff0c;它融合了虚拟现实、增强现实和互联网等多种技术&#xff0c;为人们打造了一个全新的沉浸式体验空间。在这里…

数据结构--顺序表和链表的区别

顺序表和链表之间各有优劣&#xff0c;我们不能以偏概全&#xff0c;所以我们在使用时要关注任务的注重点&#xff0c;以此来确定我们要使用两者中的哪一个。 不同点&#xff1a; 存储空间上&#xff1a; 顺序表在物理结构上是一定连续的&#xff0c;而链表(这里以带头双向循环…

面 试 题

过滤器和拦截器的区别 都是 Aop 思想的一种体现&#xff0c;用来解决项目中 某一类 问题的两种接口(工具)&#xff0c;都可以对请求做一些增强 出身 过滤器来自 servlet 拦截器来自 spring 使用范围 过滤器 Filter 实现了 iavax.servlet.Filter 接口&#xff0c;也就是说…

CSS实现渐变色

渐变色分为线性渐变和径向渐变。 线性渐变linear-gradient(方向, 颜色1, 颜色2, … ,颜色n)径向渐变radial-gradient(颜色1 覆盖区域大小, 颜色2 覆盖区域大小, … ) 线性渐变的方向可以为&#xff1a; ​ 1、一个方向值时&#xff1a; to bottom 表示从上边到下边渐变 ​ 2、…

Spring AI多模态接口开发

文章目录 项目地址创建项目配置项目接口开发结果测试测试接口测试在线图片接口测试本地图片接口测试 项目地址 Spring AI项目开发 创建项目 打开IDEA创建一个新的spring boot项目&#xff0c;填写项目名称和位置&#xff0c;类型选择maven&#xff0c;组、工件、软件包名称可…

Android 11 输入系统之InputDispatcher和应用窗口建立联系

InputDispatcher把输入事件传给应用之前&#xff0c;需要和应用窗口建立联系&#xff0c;了解了这个过程&#xff0c;就清楚了APP进程和InputDispatcher线程也就是SystemServer进程之间是如何传输数据了 我们向窗口addView的时候&#xff0c;都会调用到ViewRootImpl的setView方…

Docker 部署 Nginx 实现一个极简的 负载均衡

背景: Nginx是异步框架的网页服务器&#xff0c;其常用作反向代理(负载均衡器)。在一般的小项目中, 服务器不多, 如果不考虑使用服务注册与发现, 使用Nginx 可以容易实现负载均衡。 在特此写一个快速入门 Nginx 的技术贴, 使用 Docker 部署 Nginx, 实现一个极简的加权轮询负载均…