当前位置: 首页 > news >正文

three.js地理坐标系有哪些,和屏幕坐标系的转换。

坐标系很好理解,就是点线面体的位置,一个点是一个坐标,一条线段2个坐标,一个矩形四个坐标,一个立方体8个坐标,three.js面对的是三维空间,屏幕则是二维的,这就面临着转换问题,贝格前端工场借助本文为大家浅释一下。

一、three.js的常见坐标系

在Three.js中,地理坐标系通常指的是用于表示三维空间中位置和方向的坐标系。在Three.js中,常见的地理坐标系包括以下几种:

1. 笛卡尔坐标系(Cartesian Coordinates):

这是最常见的三维坐标系,使用三个轴(x、y、z)来表示空间中的点。x轴通常表示水平方向,y轴表示垂直方向,z轴表示深度方向。

2. 极坐标系(Polar Coordinates):

极坐标系使用距离和角度来表示点的位置。在Three.js中,可以使用极坐标系来表示某个点相对于另一个点的距离和角度。

3. 大地坐标系(Geographic Coordinates):

大地坐标系用来表示地球表面上的点的位置。通常使用经度(longitude)和纬度(latitude)来表示地球上的位置,有时也会包括高度(altitude)信息。

除了上述提到坐标系,还有一些其他常见的坐标系在计算机图形学和三维图形编程中也经常会遇到,包括:

4. 球面坐标系(Spherical Coordinates):

球面坐标系使用半径、极角和方位角来表示三维空间中的点的位置。这种坐标系在描述球体表面上的点的位置时非常有用。

5. 纹理坐标系(Texture Coordinates):

纹理坐标系用来表示在二维纹理图像上的点的位置。通常使用(u, v)坐标来表示纹理图像中的位置,这种坐标系在进行纹理映射和纹理贴图时非常重要。

6. 局部坐标系(Local Coordinates)和世界坐标系(World Coordinates):

在三维图形编程中,通常会涉及到对象的局部坐标系和世界坐标系。局部坐标系是相对于对象自身的坐标系,而世界坐标系是相对于整个场景的坐标系。

这些坐标系在不同的场景和需求中都有各自的用途,开发人员在进行三维图形编程时需要根据具体的情况选择合适的坐标系来进行操作。


二、three.js坐标系的作用

在 three.js 中,坐标系扮演着至关重要的角色,它对于描述和定位三维空间中的对象位置、方向和旋转等信息非常关键。具体来说,three.js 中的坐标系有以下几个作用:

1. 描述对象位置:

通过三维坐标系,可以准确地描述和定位场景中的各个对象的位置。在 three.js 中,通常使用笛卡尔坐标系来描述对象的位置,其中 x 轴表示水平方向,y 轴表示垂直方向,z 轴表示深度方向。

2. 控制对象旋转和方向:

坐标系可以用来描述对象的旋转角度和朝向。通过欧拉角或四元数等方式,可以在 three.js 中对对象进行旋转,从而改变其朝向和方向。


 


 

3. 进行相机和视图的控制:

在 three.js 中,相机的位置和朝向也是通过坐标系来描述的。通过调整相机的位置和朝向,可以改变观察场景的视角和视野范围。

4. 碰撞检测和交互操作:

坐标系对于进行碰撞检测和交互操作也非常重要。通过比较对象之间的位置和方向信息,可以进行碰撞检测,同时也可以根据鼠标或触摸输入的坐标来进行交互操作。


 


 

three.js 中的坐标系在描述和控制三维空间中的对象位置、旋转、相机视角等方面发挥着至关重要的作用。开发人员需要对坐标系的概念和使用方法有深入的理解,才能更好地进行三维图形编程和图形渲染。


三、三维坐标系投影到二维屏幕

这些坐标系和屏幕坐标系之间存在一定的关联,因为它们通常用于描述和定位三维空间中的对象,最终需要将其投影到二维屏幕上显示给用户。

1. 笛卡尔坐标系和屏幕坐标系:

在计算机图形学中,屏幕坐标系通常使用左上角为原点,x轴向右,y轴向下的二维坐标系来表示屏幕上的像素位置。而笛卡尔坐标系用于描述三维空间中的点的位置,需要通过投影变换将其映射到屏幕坐标系上显示。

2. 大地坐标系和屏幕坐标系:

大地坐标系用于描述地球表面上的点的位置,通常使用经度和纬度来表示。当需要在地图应用中将地理位置显示在屏幕上时,需要进行地图投影等处理,将地球表面上的点映射到屏幕坐标系上。

3. 纹理坐标系和屏幕坐标系:

纹理坐标系用于描述纹理图像上的点的位置,通常使用(u, v)坐标表示。当需要在屏幕上显示纹理贴图时,需要将纹理坐标系中的点映射到屏幕坐标系上。


 


 

这些不同的坐标系都需要通过投影变换或映射操作,将其中描述的位置信息最终映射到屏幕坐标系上,以便在屏幕上进行显示。因此,对于三维图形编程和图形渲染来说,坐标系之间的转换和映射是非常重要的。


四、转化方法和代码

在 three.js 中,将不同坐标系的坐标转换为屏幕坐标可以通过使用相机的投影矩阵和视图矩阵来实现。下面是一个简单的示例代码,演示了如何将笛卡尔坐标系中的点转换为屏幕坐标:

// 创建场景
var scene = new THREE.Scene();// 创建相机
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;// 创建渲染器
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);// 创建一个立方体对象
var geometry = new THREE.BoxGeometry();
var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
var cube = new THREE.Mesh(geometry, material);
scene.add(cube);// 将笛卡尔坐标系中的点转换为屏幕坐标
var vector = new THREE.Vector3(1, 2, 3);
vector.project(camera);// 将归一化的坐标转换为屏幕坐标
var widthHalf = window.innerWidth / 2;
var heightHalf = window.innerHeight / 2;
var result = new THREE.Vector3();
result.x = (vector.x * widthHalf) + widthHalf;
result.y = -(vector.y * heightHalf) + heightHalf;console.log('屏幕坐标:', result.x, result.y);// 渲染场景
function animate() {requestAnimationFrame(animate);cube.rotation.x += 0.01;cube.rotation.y += 0.01;renderer.render(scene, camera);
}
animate();

在这个示例中,我们首先创建了一个场景、相机和立方体对象。然后,我们创建了一个三维向量 vector,表示笛卡尔坐标系中的点 (1, 2, 3),并使用 project 方法将其转换为归一化的坐标。最后,我们将归一化的坐标转换为屏幕坐标,并输出到控制台中。

对于大地坐标系、纹理坐标和球面坐标的转换,可以根据具体的需求和场景进行相应的处理。通常情况下,大地坐标系需要进行地图投影转换,纹理坐标需要考虑纹理映射的方式,球面坐标需要考虑球面坐标系到笛卡尔坐标系的转换等。不过上述示例代码可以为你提供一个基本的思路和参考。

结束语:本位带领大家入门一下,坐标其实非常好理解,就是定位到你当前的你当前的位置,先找到你,然后才能对你施加各种动作。

首发2024-01-25 16:04·贝格前端工场

坐标系很好理解,就是点线面体的位置,一个点是一个坐标,一条线段2个坐标,一个矩形四个坐标,一个立方体8个坐标,three.js面对的是三维空间,屏幕则是二维的,这就面临着转换问题,贝格前端工场借助本文为大家浅释一下。

一、three.js的常见坐标系

在Three.js中,地理坐标系通常指的是用于表示三维空间中位置和方向的坐标系。在Three.js中,常见的地理坐标系包括以下几种:

1. 笛卡尔坐标系(Cartesian Coordinates):

这是最常见的三维坐标系,使用三个轴(x、y、z)来表示空间中的点。x轴通常表示水平方向,y轴表示垂直方向,z轴表示深度方向。

2. 极坐标系(Polar Coordinates):

极坐标系使用距离和角度来表示点的位置。在Three.js中,可以使用极坐标系来表示某个点相对于另一个点的距离和角度。

3. 大地坐标系(Geographic Coordinates):

大地坐标系用来表示地球表面上的点的位置。通常使用经度(longitude)和纬度(latitude)来表示地球上的位置,有时也会包括高度(altitude)信息。

除了上述提到坐标系,还有一些其他常见的坐标系在计算机图形学和三维图形编程中也经常会遇到,包括:

4. 球面坐标系(Spherical Coordinates):

球面坐标系使用半径、极角和方位角来表示三维空间中的点的位置。这种坐标系在描述球体表面上的点的位置时非常有用。

5. 纹理坐标系(Texture Coordinates):

纹理坐标系用来表示在二维纹理图像上的点的位置。通常使用(u, v)坐标来表示纹理图像中的位置,这种坐标系在进行纹理映射和纹理贴图时非常重要。

6. 局部坐标系(Local Coordinates)和世界坐标系(World Coordinates):

在三维图形编程中,通常会涉及到对象的局部坐标系和世界坐标系。局部坐标系是相对于对象自身的坐标系,而世界坐标系是相对于整个场景的坐标系。

这些坐标系在不同的场景和需求中都有各自的用途,开发人员在进行三维图形编程时需要根据具体的情况选择合适的坐标系来进行操作。


二、three.js坐标系的作用

在 three.js 中,坐标系扮演着至关重要的角色,它对于描述和定位三维空间中的对象位置、方向和旋转等信息非常关键。具体来说,three.js 中的坐标系有以下几个作用:

1. 描述对象位置:

通过三维坐标系,可以准确地描述和定位场景中的各个对象的位置。在 three.js 中,通常使用笛卡尔坐标系来描述对象的位置,其中 x 轴表示水平方向,y 轴表示垂直方向,z 轴表示深度方向。

2. 控制对象旋转和方向:

坐标系可以用来描述对象的旋转角度和朝向。通过欧拉角或四元数等方式,可以在 three.js 中对对象进行旋转,从而改变其朝向和方向。


 


 

3. 进行相机和视图的控制:

在 three.js 中,相机的位置和朝向也是通过坐标系来描述的。通过调整相机的位置和朝向,可以改变观察场景的视角和视野范围。

4. 碰撞检测和交互操作:

坐标系对于进行碰撞检测和交互操作也非常重要。通过比较对象之间的位置和方向信息,可以进行碰撞检测,同时也可以根据鼠标或触摸输入的坐标来进行交互操作。


 


 

three.js 中的坐标系在描述和控制三维空间中的对象位置、旋转、相机视角等方面发挥着至关重要的作用。开发人员需要对坐标系的概念和使用方法有深入的理解,才能更好地进行三维图形编程和图形渲染。


三、三维坐标系投影到二维屏幕

这些坐标系和屏幕坐标系之间存在一定的关联,因为它们通常用于描述和定位三维空间中的对象,最终需要将其投影到二维屏幕上显示给用户。

1. 笛卡尔坐标系和屏幕坐标系:

在计算机图形学中,屏幕坐标系通常使用左上角为原点,x轴向右,y轴向下的二维坐标系来表示屏幕上的像素位置。而笛卡尔坐标系用于描述三维空间中的点的位置,需要通过投影变换将其映射到屏幕坐标系上显示。

2. 大地坐标系和屏幕坐标系:

大地坐标系用于描述地球表面上的点的位置,通常使用经度和纬度来表示。当需要在地图应用中将地理位置显示在屏幕上时,需要进行地图投影等处理,将地球表面上的点映射到屏幕坐标系上。

3. 纹理坐标系和屏幕坐标系:

纹理坐标系用于描述纹理图像上的点的位置,通常使用(u, v)坐标表示。当需要在屏幕上显示纹理贴图时,需要将纹理坐标系中的点映射到屏幕坐标系上。


 


 

这些不同的坐标系都需要通过投影变换或映射操作,将其中描述的位置信息最终映射到屏幕坐标系上,以便在屏幕上进行显示。因此,对于三维图形编程和图形渲染来说,坐标系之间的转换和映射是非常重要的。


四、转化方法和代码

在 three.js 中,将不同坐标系的坐标转换为屏幕坐标可以通过使用相机的投影矩阵和视图矩阵来实现。下面是一个简单的示例代码,演示了如何将笛卡尔坐标系中的点转换为屏幕坐标:

// 创建场景
var scene = new THREE.Scene();// 创建相机
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;// 创建渲染器
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);// 创建一个立方体对象
var geometry = new THREE.BoxGeometry();
var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
var cube = new THREE.Mesh(geometry, material);
scene.add(cube);// 将笛卡尔坐标系中的点转换为屏幕坐标
var vector = new THREE.Vector3(1, 2, 3);
vector.project(camera);// 将归一化的坐标转换为屏幕坐标
var widthHalf = window.innerWidth / 2;
var heightHalf = window.innerHeight / 2;
var result = new THREE.Vector3();
result.x = (vector.x * widthHalf) + widthHalf;
result.y = -(vector.y * heightHalf) + heightHalf;console.log('屏幕坐标:', result.x, result.y);// 渲染场景
function animate() {requestAnimationFrame(animate);cube.rotation.x += 0.01;cube.rotation.y += 0.01;renderer.render(scene, camera);
}
animate();

在这个示例中,我们首先创建了一个场景、相机和立方体对象。然后,我们创建了一个三维向量 vector,表示笛卡尔坐标系中的点 (1, 2, 3),并使用 project 方法将其转换为归一化的坐标。最后,我们将归一化的坐标转换为屏幕坐标,并输出到控制台中。

对于大地坐标系、纹理坐标和球面坐标的转换,可以根据具体的需求和场景进行相应的处理。通常情况下,大地坐标系需要进行地图投影转换,纹理坐标需要考虑纹理映射的方式,球面坐标需要考虑球面坐标系到笛卡尔坐标系的转换等。不过上述示例代码可以为你提供一个基本的思路和参考。

结束语:本位带领大家入门一下,坐标其实非常好理解,就是定位到你当前的你当前的位置,先找到你,然后才能对你施加各种动作。

相关文章:

three.js地理坐标系有哪些,和屏幕坐标系的转换。

坐标系很好理解,就是点线面体的位置,一个点是一个坐标,一条线段2个坐标,一个矩形四个坐标,一个立方体8个坐标,three.js面对的是三维空间,屏幕则是二维的,这就面临着转换问题&#xf…...

聊聊C++20的三向比较运算符 `<=>`

C20标准引入了许多新特性&#xff0c;其中之一是三向比较运算符 <>&#xff0c;也被称为太空船运算符。这个新运算符为C程序员提供了一种全新的比较对象的方式&#xff0c;它能有效简化比较逻辑&#xff0c;避免编写多个比较运算符重载的情况。 为什么需要三向比较运算符…...

CVE-2024-0603 漏洞复现

CVE-2024-0603 源码&#xff1a;https://gitee.com/dazensun/zhicms 开题&#xff1a; CVE-2024-0603描述&#xff1a;ZhiCms up to 4.0版本的文件app/plug/controller/giftcontroller.php中存在一处未知漏洞。攻击者可以通过篡改参数mylike触发反序列化&#xff0c;从而远程…...

西部智慧健身小程序+华为运动健康服务

1、 应用介绍 西部智慧健身小程序为用户提供一站式全流程科学健身综合服务。用户通过登录微信小程序&#xff0c;可享用健康筛查、运动风险评估、体质检测评估、运动处方推送、个人运动数据监控与评估等公益服务。 2、 体验介绍西部智慧健身小程序华为运动健康服务核心体验如…...

Spring Boot中如何处理异步任务

Spring Boot中如何处理异步任务 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨在Spring Boot应用中如何处理异步任务&#xff0c;以提升系统的性…...

数字化精益生产系统--RD研发管理系统

R&D研发管理系统是一种用于管理和监督科学研究和技术开发的软件系统&#xff0c;其设计和应用旨在提高企业研发活动的效率、质量和速度。以下是对R&D研发管理系统的功能设计&#xff1a;...

鱼眼相机 去畸变

目录 枕形畸变和去枕形畸变 去枕形畸变失败 枕形畸变和去枕形畸变 import cv2 import numpy as np import matplotlib.pyplot as plt# 创建一个带网格的原始图像 def create_grid(image_size512, grid_size20):image np.zeros((image_size, image_size, 3), dtypenp.uint8)…...

DC/AC电源模块:为智能家居设备提供恒定的电力供应

BOSHIDA DC/AC电源模块&#xff1a;为智能家居设备提供恒定的电力供应 DC/AC电源模块是一种常见的电源转换器&#xff0c;它将直流电源&#xff08;DC&#xff09;转换为交流电源&#xff08;AC&#xff09;&#xff0c;为智能家居设备提供恒定的电力供应。在智能家居系统中&a…...

小红书运营教程02

小红书大致会分享10篇左右。微博、抖音、以及视频剪辑等自媒体运营相关技能以及运营教程相关会陆续的进行分享。 上次分享涉及到的对比,母婴系列,或者可以说是服装类型,不需要自己过多的投入,对比知识类博主来说,自己将知识讲述出来,然后要以此账号进行变现就比较麻烦,…...

k8s自动清理节点服务

要在 Kubernetes 中实现当某个节点的 CPU 或内存使用超过 90% 时清理该节点上的服务&#xff0c;你可以使用以下几种方法&#xff1a; 自定义脚本和 cron job&#xff1a;编写一个脚本监控节点的资源使用情况&#xff0c;并在超过阈值时触发清理操作。使用 DaemonSet 运行监控…...

JS如何把年月日转为时间戳

在JavaScript中&#xff0c;将年月日&#xff08;通常表示为一个字符串或者分别的年、月、日数字&#xff09;转换为时间戳&#xff08;即Unix时间戳&#xff0c;是自1970年1月1日&#xff08;UTC/GMT的午夜&#xff09;开始所经过的秒数&#xff0c;不考虑闰秒&#xff09;可以…...

【YOLOv5进阶】——引入注意力机制-以SE为例

声明&#xff1a;笔记是做项目时根据B站博主视频学习时自己编写&#xff0c;请勿随意转载&#xff01; 一、站在巨人的肩膀上 SE模块即Squeeze-and-Excitation 模块&#xff0c;这是一种常用于卷积神经网络中的注意力机制&#xff01;&#xff01; 借鉴代码的代码链接如下&a…...

【C++题解】1456. 淘淘捡西瓜

问题&#xff1a;1456. 淘淘捡西瓜 类型&#xff1a;贪心 题目描述&#xff1a; 地上有一排西瓜&#xff0c;每个西瓜都有自己的重量。淘淘有一个包&#xff0c;包的容量是固定的&#xff0c;淘淘希望尽可能在包里装更多的西瓜&#xff08;当然要装整个的&#xff0c;不能切开…...

用Python读取Word文件并提取标题

前言 在日常工作中&#xff0c;我们经常需要处理Word文档&#xff0c;特别是从中提取关键信息&#xff0c;如标题、段落等。今天&#xff0c;我们将利用Python来实现这一功能&#xff0c;并为大家提供一段完整的代码示例。 准备工作 首先&#xff0c;你需要安装python-docx库…...

Windows编程上

Windows编程[上] 一、Windows API1.控制台大小设置1.1 GetStdHandle1.2 SetConsoleWindowInfo1.3 SetConsoleScreenBufferSize1.4 SetConsoleTitle1.5 封装为Innks 2.控制台字体设置以及光标调整2.1 GetConsoleCursorInfo2.2 SetConsoleCursorPosition2.3 GetCurrentConsoleFon…...

BiTCN-Attention一键实现回归预测+8张图+特征可视化图!注意力全家桶再更新!

声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 目录 原理简介 数据介绍 结果展示 全家桶代码目…...

zoom缩放问题(关于ElementPlus、Echarts、Vue3draggable等组件偏移问题)

做了一个项目下来&#xff0c;由于整体界面偏大&#xff0c;采取了缩放90%&#xff0c;导致很多组件出现偏移问题&#xff0c;以下我会把我遇到的各种组件偏移问题依次进行描述解答&#xff1a; ElementPlus选择器下拉偏移 <template><el-select :teleported"f…...

【后端面试题】【中间件】【NoSQL】MongoDB的配置服务器、复制机制、写入语义和面试准备

MongoDB的配置服务器 引入了分片机制之后&#xff0c;MongoDB启用了配置服务器(config server) 来存储元数据&#xff0c;这些元数据包括分片信息、权限控制信息&#xff0c;用来控制分布式锁。其中分片信息还会被负责执行查询mongos使用。 MongoDB的配置服务器有一个很大的优…...

视频监控汇聚平台LntonCVS视频监控业务平台具体有哪些功能?

LntonCVS视频监控平台是一款基于H5技术开发的专业安防视频监控产品&#xff0c;旨在为安防视频监控行业提供全面的解决方案。以下是平台的主要功能和特点&#xff1a; 1. 统一接入管理&#xff1a; - 支持国内外各种品牌、协议和设备类型的监控产品统一接入管理。 - 提供标准的…...

我不小心把生产的数据改错了!同事帮我用MySQL的BinLog挽回了罚款

之前在生产做修改数据的时候不小心改错了一行数据&#xff0c;本来以为会被通报批评&#xff0c;但是同事利用binlog日志查看到了之前的旧数据&#xff0c;并且帮我回滚了&#xff0c;学到了&#xff0c;所以写了一篇binlog的文章分享给大家。 MySQL的Binary Log&#xff08;简…...

Windows系统安装NVM,实现Node.js多版本管理

目录 一、前言 二、NVM简介 三、准备工作 1、卸载Node 2、创建文件夹 四、下载NVM 五、安装NVM 六、使用NVM 1、NVM常用操作命令 2、查看NVM版本信息 3、查看Node.js版本列表&#xff1b; 4、下载指定版本Node.js 5、使用指定版本Node.js 6、查看已安装Node.js列…...

k8s部署单节点redis

一、configmap # cat redis-configmap.yaml apiVersion: v1 kind: ConfigMap metadata:name: redis-single-confignamespace: redis data:redis.conf: |daemonize nobind 0.0.0.0port 6379tcp-backlog 511timeout 0tcp-keepalive 300pidfile /data/redis-server.pidlogfile /d…...

云微客矩阵系统:如何利用智能策略引领营销新时代?

近些年&#xff0c;短视频行业的风头一时无二&#xff0c;大量的商家和企业进驻短视频赛道&#xff0c;都或多或少的实现了实体门店的流量增长。虽然说现在短视频的门槛在逐步降低&#xff0c;但是迄今为止依旧有很多人在短视频剪辑面前望而却步。 最近在短视频营销领域&#x…...

嵌入式Linux系统编程 — 6.3 kill、raise、alarm、pause函数向进程发送信号

目录 1 kill函数 1.1 kill函数介绍 1.2 示例程序 2 raise函数 2.1 raise函数介绍 2.2 示例程序 3 alarm函数 3.1 alarm函数介绍 3.2 示例程序 4 pause函数 4.1 pause函数介绍 4.2 示例程序 与 kill 命令相类似&#xff0c; Linux 系统提供了 kill()系统调用&#…...

Swoole实践:如何使用协程构建高性能爬虫

随着互联网的普及&#xff0c;web爬虫已经成为了一个非常重要的工具&#xff0c;它可以帮助我们快速地抓取所需要的数据&#xff0c;从而降低数据获取成本。在爬虫的实现中&#xff0c;性能一直是一个重要的考虑因素。swoole是一款基于php的协程框架&#xff0c;它可以帮助我们…...

基于人脸68特征点识别的美颜算法(一) 大眼算法 C++

1、加载一张原图&#xff0c;并识别人脸的68个特征点 cv::Mat img cv::imread("5.jpg");// 人脸68特征点的识别函数vector<Point2f> points_vec dectectFace68(img);// 大眼效果函数Mat dst0 on_BigEye(800, img, points_vec);2、函数 vector<Point2f&g…...

算法金 | 欧氏距离算法、余弦相似度、汉明、曼哈顿、切比雪夫、闵可夫斯基、雅卡尔指数、半正矢、Sørensen-Dice

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 抱个拳&#xff0c;送个礼 在算法模型构建中&#xff0c;我们经常需要计算样本之间的相似度&#xff0c;通常的做法是计算样本之间的距…...

项目实战--Spring Boot大数据量报表Excel优化

一、项目场景 项目中要实现交易报表&#xff0c;处理大规模数据导出时&#xff0c;出现单个Excel文件过大导致性能下降的问题&#xff0c;需求是导出大概四千万条数据到Excel文件&#xff0c;不影响正式环境的其他查询。 二、方案 1.使用读写分离&#xff0c;查询操作由从库…...

C#编程技术指南:从入门到精通的全面教程

无论你是编程新手&#xff0c;还是想要深化.NET技能的开发者&#xff0c;本文都将为你提供一条清晰的学习路径&#xff0c;从C#基础到高级特性&#xff0c;每一站都配有详尽解析和实用示例&#xff0c;旨在帮助你建立坚实的知识体系&#xff0c;并激发你对C#及.NET生态的热情。…...

Redis+定式任务实现简易版消息队列

Redis是一个开源的内存中数据结构存储系统&#xff0c;通常被用作数据库、缓存和消息中间件。 Redis主要将数据存储在内存中&#xff0c;因此读写速度非常快。 支持不同的持久化方式&#xff0c;可以将内存中的数据定期写入磁盘&#xff0c;保证数据持久性。 redis本身就有自己…...

学习在 C# 中使用 Lambda 运算符

在 C# 中&#xff0c;lambda 运算符 > 同时用于 lambda 表达式和表达式体成员。 1. Lambda 表达式 Lambda 表达式是一种简洁的表示匿名方法&#xff08;没有名称的方法&#xff09;的方法。它使用 lambda 运算符 >&#xff0c;可以读作“转到”。运算符的左侧指定输入参…...

数据结构和算法,单链表的实现(kotlin版)

文章目录 数据结构和算法&#xff0c;单链表的实现(kotlin版)b站视频链接1.定义接口&#xff0c;我们需要实现的方法2.定义节点&#xff0c;表示每个链表节点。3.push(e: E)&#xff0c;链表尾部新增一个节点4.size(): Int&#xff0c;返回链表的长度5.getValue(index: Int): E…...

Jdk17是否有可能代替 Jdk8

JDK发展历史和开源 2006年SUN公司开源JDK&#xff0c;成立OpenJDK组织。2009年Oracle收购SUN&#xff0c;加快JDK发布周期。Oracle JDK与OpenJDK功能基本一致&#xff0c;但Oracle JDK提供更长时间的更新支持。 JDK版本特性 JDK11是长期支持版本&#xff08;LTS&#xff09;…...

oca和 ocp有什么区别

OCA&#xff08;Oracle Certified Associate&#xff09;和OCP&#xff08;Oracle Certified Professional&#xff09;在Oracle的认证体系中是两种不同级别的认证&#xff0c;它们之间存在明显的区别。以下是对两者区别的详细解释&#xff1a; 认证级别&#xff1a; OCA&…...

煤矿安全大模型:微调internlm2模型实现针对煤矿事故和煤矿安全知识的智能问答

煤矿安全大模型————矿途智护者 使用煤矿历史事故案例,事故处理报告、安全规程规章制度、技术文档、煤矿从业人员入职考试题库等数据,微调internlm2模型实现针对煤矿事故和煤矿安全知识的智能问答。 本项目简介: 近年来,国家对煤矿安全生产的重视程度不断提升。为了确…...

C++中的C++中的虚析构函数的作用和重要性

在C中&#xff0c;虚析构函数&#xff08;virtual destructor&#xff09;的作用和重要性主要体现在多态和继承的上下文中。了解这一点之前&#xff0c;我们先简要回顾一下多态和继承的基本概念。 继承与多态 继承&#xff1a;允许我们定义一个基类&#xff08;也称为父类或超…...

机器学习 - 文本特征处理之 TF 和 IDF

TF&#xff08;Term Frequency&#xff0c;词频&#xff09;和IDF&#xff08;Inverse Document Frequency&#xff0c;逆文档频率&#xff09;是文本处理和信息检索中的两个重要概念&#xff0c;常用于计算一个词在文档中的重要性。下面是详细解释&#xff1a; TF&#xff08…...

因为自己淋过雨所以想给嵌入式撑把伞

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;新手学嵌入式&#xff0c;…...

《C++20设计模式》中单例模式

文章目录 一、前言二、饿汉式1、实现 三、懒汉式1、实现 四、最后 一、前言 单例模式定义&#xff1a; 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;其主要目的是确保一个类只有一个实例&#xff0c;并提供全局访问点来访问这个实例。…...

前端技术(说明篇)

Introduction ##编写内容&#xff1a;1.前端概念梳理 2.前端技术种类 3.前端学习方式 ##编写人&#xff1a;贾雯爽 ##最后更新时间&#xff1a;2024/07/01 Overview 最近在广州粤嵌进行实习&#xff0c;项目名称是”基于Node实现多人聊天室“&#xff0c;主要内容是对前端界…...

带电池监控功能的恒流直流负载组

EAK的交流和直流工业电池负载组测试仪对于测试和验证关键电力系统的能力至关重要&#xff0c;旨在实现最佳精度。作为一家客户至上的公司&#xff0c;我们继续尽我们所能应对供应链挑战&#xff0c;以提供出色的交货时间&#xff0c;大约是行业其他公司的一半。 交流负载组 我…...

关于Disruptor监听策略

Disruptor框架提供了多种等待策略&#xff0c;每种策略都有其适用的场景和特点。以下是这些策略的详细介绍及其适用场景&#xff1a; 1. BlockingWaitStrategy 特点&#xff1a; 使用锁和条件变量进行线程间通信&#xff0c;线程在等待时会进入阻塞状态&#xff0c;释放CPU资…...

大数据面试题之HBase(3)

HBase的预分区 HBase的热点问题 HBase的memstore冲刷条件 HBase的MVCC HBase的大合并与小合并&#xff0c;大合并是如何做的?为什么要大合并 既然HBase底层数据是存储在HDFS上&#xff0c;为什么不直接使用HDFS&#xff0c;而还要用HBase HBase和Phoenix的区别 HBase支…...

c#中赋值、浅拷贝和深拷贝

在 C# 编程中&#xff0c;深拷贝&#xff08;Deep Copy&#xff09;和浅拷贝&#xff08;Shallow Copy&#xff09;是用于复制对象的两种不同方式&#xff0c;它们在处理对象时有着重要的区别和适用场景。 浅拷贝&#xff08;Shallow Copy&#xff09; 浅拷贝是指创建一个新对…...

旧版st7789屏幕模块 没有CS引脚的天坑 已解决!!!

今天解决了天坑一个&#xff0c;大家可能有的人买的是st7789屏幕模块&#xff0c;240x240&#xff0c;1.3寸的 他标注的是老版&#xff0c;没有CS引脚&#xff0c;小崽子长这样&#xff1a; 这熊孩子用很多通用的驱动不吃&#xff0c;死活不显示&#xff0c;网上猛搜&#xff…...

激光粒度分析仪校准步骤详解:提升测量精度的秘诀

在材料科学、环境监测、医药研发等众多领域&#xff0c;激光粒度分析仪以其高精度、高效率的测量性能&#xff0c;成为了不可或缺的测试工具。然而&#xff0c;为了保持其测量结果的准确性和可靠性&#xff0c;定期校准是不可或缺的步骤。 接下来&#xff0c;佰德将为您详细介…...

独一无二的设计模式——单例模式(python实现)

1. 引言 大家好&#xff0c;今天我们来聊聊设计模式中的“独一无二”——单例模式。想象一下&#xff0c;我们在开发一个复杂的软件系统&#xff0c;需要一个全局唯一的配置管理器&#xff0c;或者一个统一的日志记录器&#xff1b;如果每次使用这些功能都要创建新的实例&…...

第二证券:可转债基础知识?想玩可转债一定要搞懂的交易规则!

可转债&#xff0c;全称是“可转化公司债券”&#xff0c;是上市公司为了融资&#xff0c;向社会公众所发行的一种债券&#xff0c;具有股票和债券的双重特点&#xff0c;投资者可以选择按照发行时约定的价格将债券转化成公司一般股票&#xff0c;也可作为债券持有到期后收取本…...

原型模式的实现

1. 引言 1.1 背景 在实际编程中,有时需要频繁创建多个相似但稍有不同的对象。如果采用传统的对象创建方式,容易造成代码冗余,对象重复初始化操作也可能带来大量的的资源消耗(如时间、内存等)。这样不仅降低了灵活性,导致难以适应状态的变化,还降低了代码的可扩展性。 …...

【第二套】华为 2024 年校招-硬件电源岗

1.为了避免 50Hz 的电⽹电压⼲扰放⼤器&#xff0c;应该⽤那种滤波器&#xff1a; A.带阻滤波器 B.带通滤波器 C.低通滤波器 D.⾼通滤波器 2.PID 中的 I 和 D 的作⽤分别是&#xff1f; A、消除静态误差和提⾼动态性能 B、消除静态误差和减⼩调节时间 C、提⾼动态性能和减⼩超调…...

nuxt、vue树形图d3.js

直接上代码 //安装 npm i d3 --save<template><div class"d3"><div :id"id" class"d3-content"></div></div> </template> <script> import * as d3 from "d3";export default {props: {d…...

论文浅尝 | 从最少到最多的提示可在大型语言模型中实现复杂的推理

笔记整理&#xff1a;王泽元&#xff0c;浙江大学博士 链接&#xff1a;https://openreview.net/forum?idWZH7099tgfM 1. 动机 尽管深度学习已经取得了巨大的成功&#xff0c;但它与人类智慧仍然存在一些明显差距。这些差距包括以下几个方面&#xff1a;1&#xff09;学习新任…...

Windows 11 安装 Python 3.11 完整教程

Windows 11 安装 Python 3.11 完整教程 一、安装包安装 1. 下载 Python 3.11 安装包 打开浏览器,访问 Python 官方下载页面。点击“Download Python 3.11”,下载适用于 Windows 的安装包(Windows installer)。 2. 安装 Python 3.11 运行下载的安装包 python-3.11.x-amd6…...

Unity3D 场景树与组件化开发详解

Unity3D是一款功能强大的游戏开发引擎&#xff0c;其独特的场景树和组件化开发模式为开发者提供了高效、灵活的游戏开发体验。本文将详细解析Unity3D中的场景树与组件化开发模式&#xff0c;并给出相应的技术详解和代码实现。 对惹&#xff0c;这里有一个游戏开发交流小组&…...

第31集《大乘起信论》

《大乘起信论》诸位法师、诸位居士&#xff0c;阿弥陀佛&#xff01;&#xff08;阿弥陀佛&#xff01;&#xff09; 请大家打开《讲义》第六十九页&#xff0c;寅三、拣成不成。 本论的修学宗旨&#xff0c;在前面的〈序分〉当中说:为欲令众生&#xff0c;除疑舍邪执&#x…...

【机器学习】FFmpeg+Whisper:二阶段法视频理解(video-to-text)大模型实战

目录 一、引言 二、FFmpeg工具介绍 2.1 什么是FFmpeg 2.2 FFmpeg核心原理 2.3 FFmpeg使用示例 三、FFmpegWhisper二阶段法视频理解实战 3.1 FFmpeg安装 3.2 Whisper模型下载 3.3 FFmpeg抽取视频的音频 3.3.1 方案一&#xff1a;命令行方式使用ffmpeg 3.3.2 方案二&a…...

暴热!上海迪士尼,一日票719元,还要排队1小时!

7月4日,上海迎来了到目前为止今年最热的一天。今天一大早,上海中心气象台就发布高温橙色预警:受副热带高压影响,预计上海大部地区今天的最高气温将超过37℃。中午时分,上海徐家汇气温超过38℃,位居同时段全国2418个气象站榜首。跟气温一样火热的,还有上海旅游“顶流”迪士…...

2024年沪台研讨会举行两岸专家共话低碳循环与智慧健康

东方网记者王泳婷6月20日报道:由上海市人民政府参事室和旺旺集团《旺报》共同主办的“低碳循环与智慧健康”2024年沪台研讨会于6月20日在上海举行。沪台两地150余位嘉宾出席研讨会。研讨会上,旺旺集团副董事长周锡玮从绿碳、蓝碳、土壤固碳等不同角度作“农业减碳”主旨演讲。…...

赛力斯汽车打造智能安全联合实验室,19项首期成果发布

5月25日,赛力斯汽车与中国汽研“智能网联新能源汽车智能安全联合实验室”揭牌仪式在重庆隆重举行。智能网联新能源汽车是重庆制造业的优势产业,是建设“33618”现代制造业集群体系的重要支撑。在实现“万亿级”目标指导下,“产学研”深度融合创新的智能安全联合实验室成立,…...

【Linux】TCP协议【中】{确认应答机制/超时重传机制/连接管理机制}

文章目录 1.确认应答机制2.超时重传机制&#xff1a;超时不一定是真超时了3.连接管理机制 1.确认应答机制 TCP协议中的确认应答机制是确保数据可靠传输的关键部分。以下是该机制的主要步骤和特点的详细解释&#xff1a; 数据分段与发送&#xff1a; 发送方将要发送的数据分成一…...

微前端(无界)入门

主应用通过props给子应用传值 父子应用通过eventBus通信 通过路由同步实现记录子应用的路由状态 主应用 main.ts: import ./assets/main.cssimport { createApp } from vue import { createPinia } from pinia import WujieVue from wujie-vue3import App from ./App.vue impo…...

mysql内存和磁盘的关系

mysql内存和磁盘的关系 1.MySQL的内存和磁盘之间的关系是密切的。MySQL的数据存储在磁盘上&#xff0c;但为了高效地执行查询操作&#xff0c;它也会将数据页&#xff08;每个页通常为16KB&#xff09;读入内存。MySQL的缓冲池&#xff08;buffer pool&#xff09;是在内存中的…...