超级漂亮的 Ai 官网源码

超级漂亮的 AI 官网源码

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

效果图

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


部分源码

<script lang="js">
  function project3D(x, y, z, vars) {
    var p, d
    x -= vars.camX
    y -= vars.camY - 8
    z -= vars.camZ
    p = Math.atan2(x, z)
    d = Math.sqrt(x * x + z * z)
    x = Math.sin(p - vars.yaw) * d
    z = Math.cos(p - vars.yaw) * d
    p = Math.atan2(y, z)
    d = Math.sqrt(y * y + z * z)
    y = Math.sin(p - vars.pitch) * d
    z = Math.cos(p - vars.pitch) * d
    var rx1 = -1000
    var ry1 = 1
    var rx2 = 1000
    var ry2 = 1
    var rx3 = 0
    var ry3 = 0
    var rx4 = x
    var ry4 = z
    var uc = (ry4 - ry3) * (rx2 - rx1) - (rx4 - rx3) * (ry2 - ry1)
    var ua = ((rx4 - rx3) * (ry1 - ry3) - (ry4 - ry3) * (rx1 - rx3)) / uc
    var ub = ((rx2 - rx1) * (ry1 - ry3) - (ry2 - ry1) * (rx1 - rx3)) / uc
    if (!z) z = 0.000000001
    if (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.000001
    var 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 = degree
    var w1 = 1 - w2
    return [
      w1 * RGB1[0] + w2 * RGB2[0],
      w1 * RGB1[1] + w2 * RGB2[1],
      w1 * RGB1[2] + w2 * RGB2[2],
    ]
  }

  function rgbArray(col) {
    col += 0.000001
    var 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, t

    p = Math.atan2(vars.camX, vars.camZ)
    d = Math.sqrt(vars.camX * vars.camX + vars.camZ * vars.camZ)
    d -= Math.sin(vars.frameNo / 80) / 25
    t = Math.cos(vars.frameNo / 300) / 165
    vars.camX = Math.sin(p + t) * d
    vars.camZ = Math.cos(p + t) * d
    vars.camY = -Math.sin(vars.frameNo / 220) * 15
    vars.yaw = Math.PI + p + t
    vars.pitch = elevation(vars.camX, vars.camZ, vars.camY) - Math.PI / 2

    var t
    for (var i = 0; i < vars.points.length; ++i) {
      x = vars.points[i].x
      y = vars.points[i].y
      z = vars.points[i].z
      d = Math.sqrt(x * x + z * z) / 1.0075
      t = 0.1 / (1 + (d * d) / 5)
      p = Math.atan2(x, z) + t
      vars.points[i].x = Math.sin(p) * d
      vars.points[i].z = Math.cos(p) * d
      vars.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, a
    for (var i = -25; i <= 25; i += 1) {
      for (var j = -25; j <= 25; j += 1) {
        x = i * 2
        z = j * 2
        y = vars.floor
        d = 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.15
          if (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 = a
            vars.ctx.fillRect(
              point.x - size / 2,
              point.y - size / 2,
              size,
              size
            )
          }
        }
      }
    }

领取源码

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


下期更新预报

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【强训笔记】day17

NO.1 思路&#xff1a;用一个字符串实现&#xff0c;stoi函数可以转化为数字并且去除前导0。 代码实现&#xff1a; #include <iostream> #include<string> using namespace std;string s;int main() {cin>>s;for(int i0;i<s.size();i){if(s[i]%20) s[…

Linux的命名管道 共享内存

目录 命名管道 mkfifo函数 unlink函数 命名管道类 服务端 客户端 共享内存 shmget函数 ftok函数 key和shmid的区别 snprintf函数 ipcs指令 ipcrm指令 shmctl函数 shmat函数 void*做返回值 创建共享内存空间 服务端 客户端 命名管道 基本概念&#xff1…

0509BBQ的Maven项目

0509BBQ的Maven项目包-CSDN博客 数据库字段 登录界面 点餐主页 登录完成进入点餐主页&#xff0c;显示已点餐的数据 点击点餐按钮&#xff0c;生成对应订单数据。 取消勾选点餐按钮&#xff0c;删除对应订单数据。 点击加减图片&#xff0c;实现对数量的加减 展示订单 ajax动态…

供水设备数据采集

随着城市化进程的加快&#xff0c;供水系统作为城市基础设施的重要组成部分&#xff0c;其运行效率和稳定性直接关系到市民的日常生活。在这个信息化、智能化的时代&#xff0c;如何利用先进技术提升供水系统的管理水平&#xff0c;成为了摆在我们面前的重要课题。HiWoo Cloud平…

c++——类和对象(中)

1.类的六个默认成员函数 在一个空类中真的什么都没有吗&#xff0c;错&#xff01;在创建类的时候&#xff0c;编译器自动生成六个函数&#xff0c;这六个函数叫默认成员函数。但是&#xff0c;如果我们自己实现六个同名函数&#xff08;依旧有默认成员函数的特性&#xff0c;…

内容安全(DPI和DFI解析)

内容安全前言&#xff1a; 防火墙的本质其实就是包过滤&#xff0c;我们通常所说的安全设备&#xff08;如&#xff1a;IPS、IDS、AV、WAF&#xff09;的检测重心是应用层。下一代防火墙基于传统防火墙的拓展能力&#xff0c;就是可以将以上的安全设备模块集成在一起&#xff0…

2024国考行测、申论资料大全,做好备考真的很重要!

1. 国考是什么? 国考,全称国家公务员考试,是选拔国家公务员的重要途径。通过国考,你将有机会进入政府部门,为国家建设贡献力量。 2. 国考难在哪里? 国考之所以难,主要体现在以下几个方面: (1) 竞争激烈 每年国考报名人数都在百万以上,而录取率却不足2%。千军万马过独木桥…

【java-数据结构15-模拟实现栈的方法】

上篇文章中&#xff0c;我们已经手动实现了栈&#xff0c;下面&#xff0c;我们将继续手动实现栈的方法~ 1.在栈中存放元素 1.定义一个usedsize&#xff0c;用来临时存放下标 2.当存放一个元素后&#xff0c;下标加一 3.不要忘记判满 如图 代码如下 判满方法 public boolea…

C++——超简单登录项目

程序入口文件 #include <QtWidgets/QApplication> // 包含登录页面头文件 #include "DlgLogin.h"int main(int argc, char *argv[]) {QApplication a(argc, argv);// 程序入口// 调页面起来//DlgMain w;//w.show();// 换成登录页面DlgLogin w;w.show();return…

高级查询(一)

解决需求&#xff1a;Excel都可以轻松搞定 分组查询原理&#xff1a; 语法&#xff1a; SELECT …<列名> FROM <表名> [WHERE<条件表达式> ] GROUP BY 参与分组的列 可以与 聚合函数作用的列 一块显示 注意 SELECT列表中只能包含&#xff1a; 1、被分…

Linux中如何配置虚拟机网络(NAT方法)

首先我们要在Linux中找到配置文件的路径/etc/sysconfig/network-scripts/&#xff0c;然后找到配置文件的名称ifcfg-xxx&#xff08;如&#xff1a;ifcfg-ens33&#xff09;&#xff0c;然后打开这个文件内 容如下&#xff1a; TYPEEthernet # 指定网卡类型是以太网 BOOTPROT…

gin框架学习笔记(三) ——路由请求与相关参数

参数种类与参数处理 查询参数 在讲解查询参数的定义之前&#xff0c;我们先来看一个例子&#xff0c;当我打开了CSDN&#xff0c;我现在想查看我的博客浏览量&#xff0c;那么我就需要点击我的头像来打开我的个人主页,像下面这样: 我们现在把浏览器的网址取下来&#xff0c;…

分布式版本控制工具git

1 安装Git 在linux上我们建议你用二进制的方式来安装git&#xff0c;可以使用发行版包含的基础软件包管理工具来安装&#xff0c;如果你是 是CentOS或者Fedora的操作系统&#xff0c;可以使用yum命令来安装git&#xff1a; $ sudo yum install git如果你是ubuntu或者是Debian…

YOLOv9独家原创改进: 特征融合创新 | 一种基于内容引导注意力(CGA)的混合融合 | IEEE TIP 2024 浙大

💡💡💡创新点:提出了一种基于内容引导注意力(CGA)的混合融合方案,将编码器部分的低级特征与相应的高级特征有效融合。 💡💡💡在多个数据集实现暴力涨点,适用于小目标,低对比度场景 💡💡💡如何跟YOLOv9结合:将backbone和neck的特征融合,改进结构图如下…

sql实践

1.从excel导入数据 在excel导入数据时要先在数据库中创建对应的数据库表 CREATE TABLE your_table_name (crawl_datetime DATE,url CHAR(255),company_name CHAR(255),company_size CHAR(255),company_type CHAR(255),job_type CHAR(255),job_name CHAR(255),edu CHAR(255),e…

LLM推理入门指南③:剖析模型性能

在本系列文章《LLM推理入门指南①&#xff1a;文本生成的初始化与解码阶段》中&#xff0c;作者对Transformer解码器的文本生成算法进行了高层次概述&#xff0c;着重介绍了两个阶段&#xff1a;提示的处理阶段和逐个生成补全词元的多步生成阶段。在上一篇文章《LLM推理入门指南…

【递归、回溯和剪枝】综合训练<二>

1.组合总和 组合总和 解法一&#xff1a; class Solution { public:vector<vector<int>> ret;vector<int> path;int aim;vector<vector<int>> combinationSum(vector<int>& nums, int target) {aim target;dfs(nums, 0, 0);return …

整合Tess4J图文识别技术

1. OCR图文识别介绍 OCR&#xff08;全称 Optical Character Recognition&#xff0c;直译为光学字符识别&#xff09;用于图片文字识别&#xff0c;例如 提取图片中车牌号等等。 Java中实现OCR的技术方案有&#xff1a; 百度OCR&#xff0c;花米Tesseract-OCR&#xff0c;Go…

文心一言 VS 讯飞星火 VS chatgpt (259)-- 算法导论19.3 2题

二、使用聚合分析来证明 FIB-HEAP-DECREASE-KEY 的 O(1) 摊还时间是每一个操作的平均代价。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; FIB-HEAP-DECREASE-KEY 是斐波那契堆&#xff08;Fibonacci Heap&#xff09;操作中的一个&#xff0c;它允许我们减少堆…

【LangChain系列 15】语言模型——LLMs(一)

原文地址&#xff1a;【LangChain系列 15】语言模型——LLMs(一) 本文速读&#xff1a; 异步API 自定义LLM Fake LLM HumanInput LLM 本文将介绍LLMs在LangChain中的一些用法&#xff0c;帮助我们更好地了解LLM模块。 01 异步API LangChain通过异步库实现了对异步的支持&a…