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

Unity-微信截图功能简单复刻-03绘制空心矩形

思路-绘制空心矩形

拓展UGUI的Graphic类,实现拖拽接口。
开始拖拽时记录鼠标位置,
使用拖拽中的鼠标位置和记录的位置,计算矩形顶点,绘制矩形。
两个三角形合并为一个矩形,作为空心矩形的一条边,四个边合并为空心矩形。

示例-绘制空心矩形

using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;public class TestDraw : Graphic, IBeginDragHandler, IDragHandler, IEndDragHandler
{UIVertex[] rectangle1 = new UIVertex[4];UIVertex[] rectangle2 = new UIVertex[4];UIVertex[] rectangle3 = new UIVertex[4];UIVertex[] rectangle4 = new UIVertex[4];[SerializeField] float width = 5f;Vector3 lastPoint;protected override void Awake(){Init(rectangle1);Init(rectangle2);Init(rectangle3);Init(rectangle4);void Init(UIVertex[] uIVertices){var length = uIVertices.Length;for (int i = 0; i < length; i++)uIVertices[i] = new UIVertex();}}protected override void OnPopulateMesh(VertexHelper vh){vh.Clear();vh.AddUIVertexQuad(rectangle1);vh.AddUIVertexQuad(rectangle2);vh.AddUIVertexQuad(rectangle3);vh.AddUIVertexQuad(rectangle4);}public void ClearDraw(){Clear(rectangle1);Clear(rectangle2);Clear(rectangle3);Clear(rectangle4);void Clear(UIVertex[] uIVertices){var length = uIVertices.Length;for (int i = 0; i < length; i++)uIVertices[i].position = Vector3.zero;}SetVerticesDirty();}public void OnBeginDrag(PointerEventData eventData){lastPoint = ScreenPointToLocalPoint(rectTransform, eventData.position);}public void OnDrag(PointerEventData eventData){Vector3 point = ScreenPointToLocalPoint(rectTransform, eventData.position);if (lastPoint.x < point.x && lastPoint.y < point.y)//起点在左下角{//水平方向投影向量           var horizontalNormal = Vector3.Project(point - lastPoint, Vector3.right);SetRectangleVertex(point - horizontalNormal, point, lastPoint + horizontalNormal, lastPoint);SetRectangleColor(color);SetVerticesDirty();}else if (lastPoint.x > point.x && lastPoint.y > point.y)//起点在右上角{var horizontalNormal = Vector3.Project(point - lastPoint, Vector3.right);SetRectangleVertex(lastPoint + horizontalNormal, lastPoint, point - horizontalNormal, point);SetRectangleColor(color);SetVerticesDirty();}else if (lastPoint.x > point.x && lastPoint.y < point.y)//起点在右下角{var horizontalNormal = Vector3.Project(point - lastPoint, Vector3.right);SetRectangleVertex(point, point - horizontalNormal, lastPoint, lastPoint + horizontalNormal);SetRectangleColor(color);SetVerticesDirty();}else if (lastPoint.x < point.x && lastPoint.y > point.y)//起点在左上角{var horizontalNormal = Vector3.Project(point - lastPoint, Vector3.right);SetRectangleVertex(lastPoint, lastPoint + horizontalNormal, point, point - horizontalNormal);SetRectangleColor(color);SetVerticesDirty();}}public void OnEndDrag(PointerEventData eventData){lastPoint = Vector3.zero;}void SetRectangleVertex(Vector3 topLeftUp, Vector3 topRigthUp, Vector3 bottomRightDown, Vector3 bottomLeftDown){//top矩形rectangle1[0].position = topLeftUp;rectangle1[1].position = topRigthUp;rectangle1[2].position = topRigthUp - Vector3.up * width;rectangle1[3].position = topLeftUp - Vector3.up * width;//bottom矩形rectangle2[0].position = bottomRightDown;rectangle2[1].position = bottomLeftDown;rectangle2[2].position = bottomLeftDown + Vector3.up * width;rectangle2[3].position = bottomRightDown + Vector3.up * width;//left矩形rectangle3[0].position = topLeftUp - Vector3.up * width;rectangle3[1].position = topLeftUp - Vector3.up * width + Vector3.right * width;rectangle3[2].position = bottomLeftDown + Vector3.up * width + Vector3.right * width;rectangle3[3].position = bottomLeftDown + Vector3.up * width;//right矩形rectangle4[0].position = topRigthUp - Vector3.up * width;rectangle4[1].position = bottomRightDown + Vector3.up * width;rectangle4[2].position = bottomRightDown + Vector3.up * width - Vector3.right * width;rectangle4[3].position = topRigthUp - Vector3.up * width - Vector3.right * width;}void SetRectangleColor(Color color){var length = rectangle1.Length;for (int i = 0; i < length; i++)rectangle1[i].color = color;length = rectangle2.Length;for (int i = 0; i < length; i++)rectangle2[i].color = color;length = rectangle3.Length;for (int i = 0; i < length; i++)rectangle3[i].color = color;length = rectangle4.Length;for (int i = 0; i < length; i++)rectangle4[i].color = color;}Vector2 ScreenPointToLocalPoint(RectTransform rect, Vector2 mousePoint){Vector2 result = Vector2.zero;switch (canvas.renderMode){case RenderMode.ScreenSpaceOverlay:RectTransformUtility.ScreenPointToLocalPointInRectangle(rect, mousePoint, null, out result);break;case RenderMode.ScreenSpaceCamera:RectTransformUtility.ScreenPointToLocalPointInRectangle(rect, mousePoint, canvas.worldCamera, out result);break;case RenderMode.WorldSpace:RectTransformUtility.ScreenPointToLocalPointInRectangle(rect, mousePoint, canvas.worldCamera, out result);break;}return result;}void Update(){if (Input.GetKeyDown(KeyCode.Space))ClearDraw();}
}

场景结构

在这里插入图片描述
TestDraw对象挂载TestDraw脚本,该对象需要CanvsRenderer脚本,大小为屏幕大小

运行结果

在这里插入图片描述
上方为矩形网格
运行,拖拽鼠标显示矩形。
按下空格键,清除矩形。

知识点

三角形的绘制需要三个顶点,三角形使用顺时针的顺序进行绘制。

其他几何图形的绘制思路

线:多个矩形组合而成
箭头:一个三角形,一个矩形组合而成。
空心椭圆:获取两个圆上的顶点,按照顺序绘制三角形。
椭圆绘制思路:已知圆心,半径
将圆划分多份,利用三角函数和弧度获取x坐标,y坐标。
将x,y坐标缩放,可得到椭圆上的点。

相关文章:

Unity-微信截图功能简单复刻-03绘制空心矩形

思路-绘制空心矩形 拓展UGUI的Graphic类,实现拖拽接口。 开始拖拽时记录鼠标位置&#xff0c; 使用拖拽中的鼠标位置和记录的位置&#xff0c;计算矩形顶点&#xff0c;绘制矩形。 两个三角形合并为一个矩形&#xff0c;作为空心矩形的一条边&#xff0c;四个边合并为空心矩形…...

Flutter与FastAPI的OSS系统实现

作者&#xff1a;孙嘉成 目录 一、对象存储 二、FastAPI与对象存储 2.1 缤纷云S4服务API对接与鉴权实现 2.2 RESTful接口设计与异步路由优化 三、Flutter界面与数据交互开发 3.1 应用的创建 3.2页面的搭建 3.3 文件的上传 关键词&#xff1a;对象存储、FastAPI、Flutte…...

环境搭建与入门:Flutter SDK安装与配置

环境搭建与入门&#xff1a;Flutter SDK安装与配置 一、Flutter开发环境概述 1.1 Flutter开发环境组成 Flutter开发环境主要包含以下几个关键组件&#xff1a; Flutter SDK&#xff1a;Flutter的核心开发工具包Dart SDK&#xff1a;Flutter使用的编程语言环境IDE/编辑器&am…...

MATLAB 控制系统设计与仿真 - 35

MATLAB鲁棒控制器分析 所谓鲁棒性是指控制系统在一定(结构&#xff0c;大小)的参数扰动下&#xff0c;维持某些性能的特征。 根据对性能的不同定义&#xff0c;可分为稳定鲁棒性(Robust stability)和性能鲁棒性(Robust performance)。 以闭环系统的鲁棒性作为目标设计得到的…...

多模态记忆融合:基于LSTM的连续场景生成——突破AI视频生成长度限制

一、技术背景与核心挑战 2025年视频生成领域面临的关键难题是长时程连贯性——传统方法在生成超过5分钟视频时会出现场景跳变、物理规则不一致等问题。本研究提出时空记忆融合架构&#xff08;ST-MFA&#xff09;&#xff0c;通过LSTM记忆门控与多模态对齐技术&#xff0c;在R…...

架构师面试(三十二):注册中心数据结构

问题 提到【注册中心】&#xff0c;我们对它的基本功能&#xff0c;肯定可以顺手拈来&#xff0c;比如&#xff1a;【服务注册】【服务发现】【健康检查】【变更通知】等。 透过这些基本功能&#xff0c;一个普适的注册中心的数据结构应该如何设计呢&#xff1f; 可以结合着…...

Oracle 19c新特性:OCP认证考试与职业跃迁的关键?

在数字化转型的浪潮中&#xff0c;Oracle 19c作为数据库领域的旗舰版本&#xff0c;不仅承载着技术革新的使命&#xff0c;更成为IT从业者职业进阶的“黄金跳板”。无论是企业级应用的高可用性需求&#xff0c;还是云原生架构的快速迭代&#xff0c;Oracle 19c的智能化与多模型…...

360蜘蛛IP完整版,360搜索引擎蜘蛛IP列表.pdf

360搜索的蜘蛛在访问网站时&#xff0c;都会带上带有360spider签名信息的UA&#xff0c;其形态为&#xff1a; Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36; 360Spider 为满足站长朋友们的需求&a…...

C++_设计模式\_观察者模式(Observer Pattern)

&#x1f44b; Hi, I’m liubo&#x1f440; I’m interested in harmony&#x1f331; I’m currently learning harmony&#x1f49e;️ I’m looking to collaborate on …&#x1f4eb; How to reach me …&#x1f4c7; sssssdsdsdsdsdsdasd&#x1f383; dsdsdsdsdsddfsg…...

23种设计模式全面解析

设计模式是解决软件设计中常见问题的经典方案。根据《设计模式&#xff1a;可复用面向对象软件的基础》&#xff08;GoF&#xff09;&#xff0c;23种设计模式分为以下三类&#xff1a; 一、创建型模式&#xff08;5种&#xff09; 目标&#xff1a;解耦对象的创建过程&#x…...

学术AI工具推荐

一、基础信息对比 维度知网研学AI&#xff08;研学智得AI&#xff09;秘塔AIWOS AI开发公司同方知网&#xff08;CNKI&#xff09;上海秘塔网络科技Clarivate Analytics是否接入DeepSeek✅ 深度集成&#xff08;全功能接入DeepSeek-R1推理服务&#xff09;✅ 通过API接入DeepS…...

Agent的九种设计模式 介绍

Agent的九种设计模式 介绍 一、ReAct模式 原理:将推理(Reasoning)和行动(Acting)相结合,使Agent能够在推理的指导下采取行动,并根据行动的结果进一步推理,形成一个循环。Agent通过生成一系列的思维链(Thought Chains)来明确推理步骤,并根据推理结果执行相应的动作,…...

Python如何助力区块链网络安全?从攻击防范到智能合约审计

Python如何助力区块链网络安全?从攻击防范到智能合约审计 引言:区块链安全,真的安全吗? 区块链作为去中心化技术的代表,被誉为“不可篡改”的分布式账本。但事实真的如此吗?现实世界中,智能合约漏洞、私钥泄露、交易欺诈等安全问题层出不穷,让区块链网络安全成为一个关…...

磁流变式汽车减振器创新设计与关键技术研究

摘要 本文针对智能悬架系统的发展需求&#xff0c;深入探讨磁流变减振器&#xff08;MR Damper&#xff09;的核心设计原理与工程实现路径。通过建立磁场-流场耦合模型&#xff0c;优化磁路结构与控制策略&#xff0c;提出具有快速响应特性的新型磁流变减振器设计方案&#xf…...

Kafka 时间轮

Kafka存在大量的延迟操作&#xff0c;比如延迟删除、延迟拉取等。Kafka基于时间轮概念自定义了一个用于延迟操作的定时器。 JDK自带的Timer和DelayQueue缺陷 Timer和DelayQueue都可以插入多个定时任务&#xff0c;它们都使用一个优先级队列来管理任务&#xff0c;复杂度为O(l…...

加锁注意事项

结论&#xff1a; 1&#xff1a;加锁前不能有可能异常的代码结构&#xff0c;原因&#xff1a;没加锁&#xff0c;直接因为上边的异常走finall解锁&#xff0c;导致不必要的问题 2&#xff1a;加锁后&#xff0c;try之前。有异常代码&#xff0c;导致无法走到try进行解锁.后果&…...

Vue3+Vite+TypeScript+Element Plus开发-22.客制Table组件

系列文档目录 Vue3ViteTypeScript安装 Element Plus安装与配置 主页设计与router配置 静态菜单设计 Pinia引入 Header响应式菜单缩展 Mockjs引用与Axios封装 登录设计 登录成功跳转主页 多用户动态加载菜单 Pinia持久化 动态路由 -动态增加路由 动态路由-动态删除…...

hive的基础配置优化与数仓流程

1.HDFS副本数 dfs.replication&#xff08;HDFS&#xff09; 文件副本数&#xff0c;通常设为3&#xff0c;不推荐修改。 如果测试环境只有二台虚拟机&#xff08;2个datanode节点&#xff09;&#xff0c;此值要修改为2。 2.Yarn基础配置 2.1NodeManager配置 2.1.1CPU配置 …...

制作一个简单的操作系统3

打印一个 hello 在 INT 10H 中断中的作用 INT 10H 是 BIOS 提供的中断&#xff0c; 当 AH 寄存器的值被设置为 0x0e 时&#xff0c;INT 10H 中断就会以 TTY 模式工作。 mov ah, 0x0e ;tty模式 mov al, H int 0x10 mov al, e int 0x10 mov al, l int 0x10 int 0x10 ; l is stil…...

linux ptrace 图文详解(六) gdb单步调试

目录 一、gdb单步调试介绍 二、单步调试原理 三、MDSCR_EL1对单步调试的支持、及起作用时机 四、代码实现 五、总结 &#xff08;代码&#xff1a;linux 6.3.1&#xff0c;架构&#xff1a;arm64&#xff09; One look is worth a thousand words. —— Tess Flanders …...

51、项⽬中的权限管理怎么实现的

答&#xff1a;权限管理有三个很重要的模块&#xff1b; (1)⽤⼾模块&#xff1a;可以给⽤⼾分配不同的⻆⾊ (2)⻆⾊模块&#xff1a;可以授于⽤⼾不同的⻆⾊&#xff0c;不同的⻆⾊有不同权限 (3)权限模块&#xff1a;⽤于管理系统中的权限接⼝&#xff0c;为⻆⾊提供对…...

第五章 SQLite数据库:4、SQLite 进阶用法:常见的约束、PRAGMA 配置、数据操作

SQLite PRAGMA PRAGMA 命令用于查询和设置 SQLite 数据库的环境配置&#xff0c;可以帮助管理数据库的行为和性能。 语法 查询 PRAGMA 值&#xff1a; PRAGMA pragma_name;设置 PRAGMA 值&#xff1a; PRAGMA pragma_name value;常见 PRAGMA 示例 1. auto_vacuum Pragma…...

Windows系统安装Boost库

安装Boost库 下载Boost库源码 Boost Downloads 从Boost官方网站下载源码。请访问Boost官网&#xff0c;选择适合您系统的版本进行下载。下载完成后&#xff0c;解压源文件到您选择的目录。 使用Bootstrap脚本准备编译 在Boost源码的根目录下&#xff0c;找到bootstrap.bat文件…...

2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析

青少年软件编程(Python)等级考试试卷(三级) 分数:100 题数:38 一、单选题(共25题,共50分) 1. 学校进行体育跳远期末考试,每人有三次机会,取最远的一次作为最后成绩,1班的成绩如下,CLASS1=[[‘李明’,150,152,147],[‘王红’,146,143,146],[‘刘岩’,148,152,150],[…...

Git 解决“Filename too long”问题

在 Windows 系统中使用 Git 时&#xff0c;遇到 Filename too long 错误通常是由于系统默认的路径长度限制&#xff08;260 字符&#xff09;导致的。以下是综合多种场景的解决方案&#xff1a; 一、快速解决方法 启用 Git 长路径支持 通过 Git 配置命令允许处理超长文件名&am…...

DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_自定义单元格大小示例(CalendarView01_07)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

麦科信汽车诊断示波器在机车维修领域中的应用实例

麦科信汽车诊断示波器在机车维修领域中的应用实例 “Micsig SATO1004的错误帧统计功能与历史波形存储&#xff0c;让我们在诊断间歇性CAN故障时有了决定性武器。这不仅是工具升级&#xff0c;更是维修理念的革新。” — Ian Coffey, Mototek技术总监&#xff08;欧洲ECU诊…...

Zookeeper 概述

Zookeeper 概述 Zookeeper 概述与使用指南什么是Zookeeper&#xff1f;Zookeeper的主要作用使用Zookeeper的框架典型使用场景1. 配置管理2. 分布式锁3. 服务注册与发现 Zookeeper的缺陷与其他协调服务的比较实际案例&#xff1a;Kafka使用Zookeeper最佳实践 Zookeeper 概述与使…...

leetcode 188. Best Time to Buy and Sell Stock IV

目录 题目描述 第一步&#xff0c;明确并理解dp数组及下标的含义 第二步&#xff0c;分析明确并理解递推公式 1.求dp[i][j].holding 2.求dp[i][j].sold 第三步&#xff0c;理解dp数组如何初始化 第四步&#xff0c;理解遍历顺序 代码 题目描述 这道题把第123题推广为一…...

Kubernetes》》k8s》》Namespace

Namespace 概述 Namespace&#xff08;命名空间&#xff09; 是 Kubernetes 中用于逻辑隔离集群资源的机制&#xff0c;可将同一集群划分为多个虚拟环境&#xff0c;适用于多团队、多项目或多环境&#xff08;如开发、测试、生产&#xff09;的场景。 核心作用&#xff1a; 资…...

如何在米尔-STM32MP257开发板上部署环境监测系统

本文将介绍基于米尔电子MYD-LD25X开发板&#xff08;米尔基于STM35MP257开发板&#xff09;的环境监测系统方案测试。 摘自优秀创作者-lugl4313820 一、前言 环境监测是当前很多场景需要的项目&#xff0c;刚好我正在论坛参与的一个项目&#xff1a;Thingy:91X 蜂窝物联网原型…...

解决jupyter notebook修改路径下没有c.NotebookApp.notebook_dir【建议收藏】

文章目录 一、检查并解决问题二、重新设置默认路径创作不易&#xff0c;感谢未来首富们的支持与关注&#xff01; 最近在用jupyter notebook编写代码时&#xff0c;更新了一下Scikit-learn的版本&#xff0c;然后重新打开jupyter notebook的时候&#xff0c;我傻眼了&#xff0…...

lottie深入玩法

A、json文件和图片资源分开 delete 是json资源名字 /res/lottie/delete_anim_images是图片资源文件夹路径 JSON 中引用的图片名&#xff0c;必须与实际图片文件名一致 B、json文件和图片资源分开&#xff0c;并且图片加载不固定 比如我有7张图片&#xff0c;分别命名1~7&…...

o3和o4-mini的升级有哪些亮点?

ChatGPT是基于OpenAI GPT系列的高性能对话生成AI&#xff0c;经过多代迭代不断提升自然语言理解和生成能力。 在过去的一年中&#xff0c;OpenAI先后发布了GPT-4、GPT‑4.1及多种mini版本&#xff0c;为不同使用场景提供灵活选择。​ 随着用户需求向更高效、更精准的推理和视觉…...

Spring Boot 3 + SpringDoc:打造接口文档

1、背景公司 新项目使用SpringBoot3.0以上构建&#xff0c;其中需要对外输出接口文档。接口文档一方面给到前端调试&#xff0c;另一方面给到测试使用。 2、SpringDoc 是什么&#xff1f; SpringDoc 是一个基于 Spring Boot 项目的库&#xff0c;能够自动根据项目中的配置、…...

ApiHug 前端解决方案 - M1 内侧

背景 ApiHug UI 解决方案 - ApiHug前后端语义化设计&#xff0c;节约80%以上时间https://apihug.github.io/zhCN-docs/ui 现代前端框架日趋SPA(Single Page Application)化&#xff0c;给前后协同都带来了挑战&#xff0c;ApiHug试图减少多人在前后协同带来的理解难度&#x…...

vue2.6.12 安装babel 以使用 可选链 ?. 和空值合并 ??

package.json文件 {"name": "ruoyi","version": "3.6.4","description": "若依管理系统","author": "若依","license": "MIT","scripts": {"dev":…...

AI数字人如何深度赋能政务场景?魔珐科技政务应用全景解读

在数字中国建设的进程中&#xff0c;政务传播与公共服务正面临效率提升、质量优化与体验改善的多重需求。以魔珐科技所打造的AI数字人为代表&#xff0c;正在逐步融入政务体系&#xff0c;成为推动工作提效和服务创新的重要工具。从国家安全宣讲到政策解读&#xff0c;从反诈防…...

SpringAI+DeepSeek大模型应用开发——5 ChatPDF

ChatPDF 知识库 RAG检索增强 由于训练大模型非常耗时&#xff0c;再加上训练语料本身比较滞后&#xff0c;所以大模型存在知识限制问题&#xff1a; 知识数据比较落后&#xff0c;往往是几个月之前的&#xff1b;不包含太过专业领域或者企业私有的数据&#xff1b; 为了解决…...

音视频之H.265/HEVC变换编码

H.265/HEVC系列文章&#xff1a; 1、音视频之H.265/HEVC编码框架及编码视频格式 2、音视频之H.265码流分析及解析 3、音视频之H.265/HEVC预测编码 4、音视频之H.265/HEVC变换编码 目录 一、离散余弦变换&#xff1a; DCT原理及特点&#xff1a; 一维DCT解析例子&#xff1…...

网工_FTP协议

2025.04.18&#xff1a;网工老姜&小猿网学习笔记 第27节 FTP协议 7.1 FTP概述7.2 FTP工作原理7.2.1 FTP主动模式7.2.2 FTP被动模式 7.3 FTP客户端常用命令7.4 本章小结 7.1 FTP概述 文件传输协议file transfer protocol 常见用途是从FTP服务器批量下载文件&#xff0c;另一…...

Vue2+Vue3 130~180集学习笔记

Vue2Vue3 130~180集&#xff08;Vue3&#xff09;学习笔记 一、create-vue搭建vue3项目 create-vue是vue官方新的脚手架工具&#xff0c;底层切换到了vite 步骤&#xff1a; 查看环境条件 node -v版本需要在16.0及以上创建一个vue应用 npm init vuelatest 这一指令会安装并执…...

前端融合图片mask

之前实现了tif文件的融合&#xff0c;现在实现图片的融合&#xff0c;效果如下 第一张是融合右边两张图的结果 我的思路是&#xff1a; 初始使用canvas加载原图&#xff0c;此时未显示标注点击显示标注后&#xff0c;将原图和mask图传给workerworker接受数据后&#xff0c;转…...

什么是单元测试的“覆盖率”

1. 先搞清楚“覆盖率”是啥&#xff1f;​​ 打个比方&#xff0c;你写完作业&#xff08;代码&#xff09;&#xff0c;老师&#xff08;测试&#xff09;要检查是不是每道题都做对了。覆盖率就是说老师检查了多少题。比如&#xff1a; ​行覆盖率​&#xff1a;老师看了你作…...

SpringAI入门:对话机器人

SpringAI入门&#xff1a;对话机器人 1.引入依赖 创建一个新的SpringBoot工程&#xff0c;勾选Web、MySQL驱动、Ollama&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xm…...

[Java · 初窥门径] Java 语言初识

&#x1f31f; 想系统化学习 Java 编程&#xff1f;看看这个&#xff1a;[编程基础] Java 学习手册 0x01&#xff1a;Java 编程语言简介 Java 是一种高级计算机编程语言&#xff0c;它是由 Sun Microsystems 公司&#xff08;已被 Oracle 公司收购&#xff09;于 1995 年 5 …...

大语言模型智能体:安全挑战与应对之道

在当今科技飞速发展的时代&#xff0c;大语言模型驱动的智能体正逐渐融入我们生活和工作的方方面面&#xff0c;给我们带来了诸多便利。但与此同时&#xff0c;它们的安全问题也引起了广泛的关注。今天&#xff0c;咱们就一起来深入了解一下可信大语言模型智能体所面临的安全挑…...

IHC肿瘤标志物 | 常见乳腺癌诊断——助力守护生命之花

乳腺癌作为一种常见的恶性肿瘤&#xff0c;严重威胁着女性健康。然而&#xff0c;随着医学技术的不断发展&#xff0c;我们有了更为精准和有效的检测方法&#xff0c;为及早发现和治疗乳腺癌提供了强有力的支持。 在这篇文章中&#xff0c;我们将深入了解乳腺癌的IHC检测技术&a…...

利用deepseek+Mermaid画流程图

你是一个产品经理&#xff0c;请绘制一个流程图&#xff0c;要求生成符合Mermaid语法的代码&#xff0c;要求如下&#xff1a; 用户下载文件、上传文件、删除文件的流程过程符合安全规范细节具体到每一步要做什么 graph LRclassDef startend fill:#F5EBFF,stroke:#BE8FED,str…...

Vue3 实战:打造多功能旅游攻略选项卡页面

在旅游类应用开发中&#xff0c;为用户提供全面、直观的信息展示界面至关重要。本文将分享如何基于 Vue3 Axios 技术栈&#xff0c;实现一个包含攻略、游记、问答三大板块的旅游攻略选项卡页面&#xff0c;从样式设计到交互逻辑&#xff0c;带你深入了解整个开发过程。 项目背…...