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

贝塞尔曲线原理

文章目录

  • 一、 低阶贝塞尔曲线
    • 1.一阶贝塞尔曲线
    • 2. 二阶贝塞尔曲线
    • 3. 三阶贝塞尔曲线

一、 低阶贝塞尔曲线

1.一阶贝塞尔曲线

如下图所示, P 0 ​ P_0​ P0, P 1 ​ P_1​ P1 是平面中的两点,则 B ( t ) B ( t ) B(t) 代表平面中的一段线段。
在这里插入图片描述
考虑这样一条曲线方程
B ( t ) = P 0 ​ + ( P 1 ​ − P 0 ​ ) t = ( 1 − t ) P 0 ​ + t P 1 \begin{align} B(t)=P_0​+(P_1​−P_0​)t=(1−t)P_0​+tP_1 \end{align} B(t)=P0+(P1P0)t=(1t)P0+tP1
一阶曲线很好理解, 就是根据 t t t来的线性插值, t t t的取值范围为 [ 0 , 1 ] [ 0 , 1 ] [0,1]

python实现

# 保存动图时用,pip install celluloid
from celluloid import Camera 
import numpy as np
import matplotlib.pyplot as plt
P0=np.array([0,0])
P1=np.array([1,1])
fig=plt.figure(1)
camera = Camera(fig)
x =[]
y=[]
for t in np.arange(0,1,0.01):plt.plot([P0[0],P1[0]],[P0[1],P1[1]],'r')p1_t=(1-t)*P0+t*P1x.append(p1_t[0])y.append(p1_t[1])# plt.plot(x,y,c='b')plt.scatter(x,y,c='b')# plt.pause(0.001)camera.snap()
animation = camera.animate()
animation.save('一阶贝塞尔.gif')

matlab实现

from celluloid import Camera  # 保存动图时用,pip install celluloid
import numpy as np
import matplotlib.pyplot as plt
P0=np.array([0,0])
P1=np.array([1,1])
fig=plt.figure(1)
camera = Camera(fig)
x =[]
y=[]
for t in np.arange(0,1,0.01):plt.plot([P0[0],P1[0]],[P0[1],P1[1]],'r')p1_t=(1-t)*P0+t*P1x.append(p1_t[0])y.append(p1_t[1])# plt.plot(x,y,c='b')plt.scatter(x,y,c='b')# plt.pause(0.001)camera.snap()
animation = camera.animate()
animation.save('一阶贝塞尔.gif')

2. 二阶贝塞尔曲线

对于二阶贝塞尔曲线,需要3个控制点,假设分别为 P 0 P_0 P0 P 1 P_1 P1 P 2 P_2 P2​。 P 0 P_0 P0 P 1 P_1 P1 ​构成一阶 P 1 , 1 ​ ( t ) P_{1,1}​(t) P1,1(t) P 1 P_1 P1​和 P 2 P_2 P2​​也构成一阶 P 1 , 2 ​ ( t ) P_{1,2}​(t) P1,2(t),即:
{ P 1 , 1 ​ ( t ) = ( 1 − t ) P 0 ​ + t P 1 P 1 , 2 ​ ( t ) = ( 1 − t ) P 1 + t P 2 \begin{equation} \left\{ \begin{array}{} P_{1,1}​(t)=(1−t)P_0​+tP_1 \\ P_{1,2}​(t)=(1−t)P_1+tP_2 \\ \end{array} \right. \end{equation} {P1,1(t)=(1t)P0+tP1P1,2(t)=(1t)P1+tP2
在生成的两个一阶点 P 1 , 1 ​ ( t ) P_{1,1}​(t) P1,1(t) P 1 , 2 ​ ( t ) P_{1,2}​(t) P1,2(t)基础上,可以生成二阶贝塞尔点 P 2 ​ ( t ) P_2​(t) P2(t):
P 2 ​ ( t ) = ( 1 − t ) P 1 , 1 ​ + t P 1 , 2 ​ = ( 1 − t ) 2 P 0 ​ + 2 t ( 1 − t ) P 1 ​ + t 2 P 2 \begin{align} P_2​(t)=(1−t)P_{1,1}​+tP_{1,2}​=(1−t)^2P_0​+2t(1−t)P_1​+t^2P_2 \end{align} P2(t)=(1t)P1,1+tP1,2=(1t)2P0+2t(1t)P1+t2P2
在这里插入图片描述
python实现

from celluloid import Camera  # 保存动图时用,pip install celluloid
import numpy as np
import matplotlib.pyplot as plt
P0 = np.array([0, 0])
P1 = np.array([1,1])
P2 = np.array([2, 1])
fig = plt.figure(2)
camera = Camera(fig)x_2 = []
y_2 = []
for t in np.arange(0, 1, 0.01):plt.cla()plt.plot([P0[0], P1[0]], [P0[1], P1[1]], 'k')plt.plot([P1[0], P2[0]], [P1[1], P2[1]], 'k')p11_t = (1-t)*P0+t*P1p12_t = (1-t)*P1+t*P2p2_t = (1-t)*p11_t+t*p12_tx_2.append(p2_t[0])y_2.append(p2_t[1])plt.scatter(x_2, y_2, c='r')plt.plot([p11_t[0],p12_t[0]],[p11_t[1],p12_t[1]],'g')plt.title("t="+str(t))plt.pause(0.001)
#     camera.snap()
# animation = camera.animate()
# animation.save('2阶贝塞尔.gif')

matlab实现

clc;
clear;
close all;
%% 二次贝塞尔曲线
P0=[0,0];
P1=[1,1];
P2=[2,1];
P=[P0;P1;P2];
figure(2);
plot(P(:,1),P(:,2),'k');
MakeGif('二次贝塞尔曲线.gif',1);
hold onscatter(P(:,1),P(:,2),200,'.b');
for t=0:0.01:1P_t_1=(1-t) * P0 + t * P1;P_t_2=(1-t) * P1 + t * P2;P_t_3=(1-t) * P_t_1 + t * P_t_2;m1=scatter(P_t_1(1),P_t_1(2),300,'g');m2=scatter(P_t_2(1),P_t_2(2),300,'g');m3=plot([P_t_1(1),P_t_2(1)],[P_t_1(2),P_t_2(2)],'g','linewidth',2);scatter(P_t_3(1),P_t_3(2),300,'.r');  stringName = "二次贝塞尔曲线:t="+num2str(t);title(stringName);MakeGif('二次贝塞尔曲线.gif',t*100+1);delete(m1);delete(m2);delete(m3);
end

3. 三阶贝塞尔曲线

在这里插入图片描述
三阶贝塞尔曲线有4个控制点,假设分别为 P 0 P_0 P0 P 1 P_1 P1 P 2 P_2 P2 P 3 P_3 P3 P 0 P_0 P0 P 1 P_1 P1 P 1 P_1 P1 P 2 P_2 P2 P 2 P_2 P2 P 3 P_3 P3 分别构成一阶 P 1 , 1 ​ ( t ) P_{1,1}​(t) P1,1(t) P 1 , 2 ​ ( t ) P_{1,2}​(t) P1,2(t) P 1 , 3 ​ ( t ) P_{1,3}​(t) P1,3(t),即:
{ P 1 , 1 ​ ( t ) = ( 1 − t ) P 0 ​ + t P 1 P 1 , 2 ​ ( t ) = ( 1 − t ) P 1 + t P 2 P 1 , 3 ​ ( t ) = ( 1 − t ) P 2 + t P 3 \begin{equation} \left\{ \begin{array}{} P_{1,1}​(t)=(1−t)P_0​+tP_1 \\ P_{1,2}​(t)=(1−t)P_1+tP_2 \\ P_{1,3}​(t)=(1−t)P_2+tP_3 \\ \end{array} \right. \end{equation} P1,1(t)=(1t)P0+tP1P1,2(t)=(1t)P1+tP2P1,3(t)=(1t)P2+tP3
在生成的三个一阶点 P 1 , 1 ​ ( t ) P_{1,1}​(t) P1,1(t) P 1 , 2 ​ ( t ) P_{1,2}​(t) P1,2(t) P 1 , 3 ​ ( t ) P_{1,3}​(t) P1,3(t)基础上,可以生成两个二阶贝塞尔点 P 2 , 1 ​ ( t ) P_{2,1}​(t) P2,1(t) P 2 , 2 ​ ( t ) P_{2,2}​(t) P2,2(t)
{ P 2 , 1 ​ ( t ) = ( 1 − t ) P 1 , 1 ​ + t P 1 , 2 ​ P 2 , 2 ​ ( t ) = ( 1 − t ) P 1 , 2 ​ + t P 1 , 3 ​ \begin{equation} \left\{ \begin{array}{} P_{2,1}​(t)=(1−t)P_{1,1}​+tP_{1,2}​ \\ P_{2,2}​(t)=(1−t)P_{1,2}​+tP_{1,3}​\\ \end{array} \right. \end{equation} {P2,1(t)=(1t)P1,1+tP1,2P2,2(t)=(1t)P1,2+tP1,3
在生成的两个二阶点 P 2 , 1 ​ ( t ) P_{2,1}​(t) P2,1(t) P 2 , 2 ​ ( t ) P_{2,2}​(t) P2,2(t)基础上,可以生成三阶贝塞尔点 P 3 ( t ) P_3(t) P3(t):
P 3 ​ ( t ) = ( 1 − t ) P 2 , 1 + t P 2 , 2 ​ = ( 1 − t ) 3 P 0 ​ + 3 t ( 1 − t ) 2 P 1 ​ + 3 t 2 ( 1 − t ) P 2 + t 3 P 3 \begin{align} P_3​(t)=(1−t)P_{2,1}+tP_{2,2}​=(1−t)^3P_0​+3t(1−t)^2P_1​+3t^2(1-t)P_2+t^3P_3 \end{align} P3(t)=(1t)P2,1+tP2,2=(1t)3P0+3t(1t)2P1+3t2(1t)P2+t3P3

python实现

from celluloid import Camera  # 保存动图时用,pip install celluloid
import numpy as np
import matplotlib.pyplot as pltP0 = np.array([0, 0])
P1 = np.array([1, 1])
P2 = np.array([2, 1])
P3 = np.array([3, 0])
fig = plt.figure(3)
camera = Camera(fig)x_2 = []
y_2 = []
for t in np.arange(0, 1, 0.01):plt.cla()plt.plot([P0[0], P1[0]], [P0[1], P1[1]], 'k')plt.plot([P1[0], P2[0]], [P1[1], P2[1]], 'k')plt.plot([P2[0], P3[0]], [P2[1], P3[1]], 'k')p11_t = (1-t)*P0+t*P1p12_t = (1-t)*P1+t*P2p13_t = (1-t)*P2+t*P3p21_t = (1-t)*p11_t+t*p12_tp22_t = (1-t)*p12_t+t*p13_tp3_t = (1-t)*p21_t+t*p22_tx_2.append(p3_t[0])y_2.append(p3_t[1])plt.scatter(x_2, y_2, c='r')plt.plot([p11_t[0], p12_t[0]], [p11_t[1], p12_t[1]], 'b')plt.plot([p12_t[0], p13_t[0]], [p12_t[1], p13_t[1]], 'b')plt.plot([p21_t[0], p22_t[0]], [p21_t[1], p22_t[1]], 'r')plt.title("t="+str(t))plt.pause(0.001)
#     camera.snap()
# animation = camera.animate()
# animation.save('3阶贝塞尔.gif')

matlab实现

clc;
clear;
close all;
P0=[0,0];
P1=[1,1];
P2=[2,1];
P3=[3,0];
P=[P0;P1;P2;P3];
figure(3);
plot(P(:,1),P(:,2),'k');
MakeGif('三次贝塞尔曲线.gif',1);
hold on
scatter(P(:,1),P(:,2),200,'.b');for t=0:0.01:1P_t_1=(1-t) * P0 + t * P1;P_t_2=(1-t) * P1 + t * P2;P_t_3=(1-t) * P2 + t * P3;ssP_t_4=(1-t) * P_t_1 + t * P_t_2;P_t_5=(1-t) * P_t_2 + t * P_t_3;P_t_6=(1-t) * P_t_4 + t * P_t_5;m1=scatter(P_t_1(1),P_t_1(2),300,'g');m2=scatter(P_t_2(1),P_t_2(2),300,'g');m3=scatter(P_t_3(1),P_t_3(2),300,'g');m4=scatter(P_t_4(1),P_t_4(2),300,'m');m5=scatter(P_t_5(1),P_t_5(2),300,'m');m6=plot([P_t_1(1),P_t_2(1),P_t_3(1)],[P_t_1(2),P_t_2(2),P_t_3(2)],'g','linewidth',2);m7=plot([P_t_4(1),P_t_5(1)],[P_t_4(2),P_t_5(2)],'m','linewidth',2);scatter(P_t_6(1),P_t_6(2),300,'.r');  stringName = "三次贝塞尔曲线:t="+num2str(t);title(stringName);MakeGif('三次贝塞尔曲线.gif',t*100+1);delete(m1);delete(m2);delete(m3);delete(m4);delete(m5);delete(m6);delete(m7);
end

相关文章:

贝塞尔曲线原理

文章目录 一、 低阶贝塞尔曲线1.一阶贝塞尔曲线2. 二阶贝塞尔曲线3. 三阶贝塞尔曲线 一、 低阶贝塞尔曲线 1.一阶贝塞尔曲线 如下图所示, P 0 ​ P_0​ P0​​, P 1 ​ P_1​ P1​​ 是平面中的两点,则 B ( t ) B ( t ) B(t) 代表平面中的一段线段。…...

【MYSQL】笔记

📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🅒 C 语言 | 🌐 计算机网络 在ubuntu中,改配置文件: sudo nano /etc/mysql/mysql.conf.d/mysq…...

构建 TypoView:一个富文本样式预览工具的全流程记录

我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 在一次和 CodeBuddy 的日常交流中,我提出了一个构想:能不能帮我从零构建一个富文本样式…...

使用conda创建python虚拟环境,并自定义路径

创建虚拟环境 conda create --prefixE:/ai-tools/Luoxuejiao/envs/Luo24 python3.8 此时虚拟环境没有名字,只有路径,下面将名字添加到配置中: conda config --append envs_dirs E:/ai-tools/Luoxuejiao/envs/...

【自然语言处理与大模型】向量数据库技术

向量数据库,是专门为向量检索设计的中间件! 高效存储、快速检索和管理高纬度向量数据的系统称为向量数据库 一、向量数据库是什么有什么用? 向量数据库是一种专门用于高效存储和检索高维向量数据的系统。它通过嵌入模型将各类非结构化数据&am…...

Java中的伪共享(False Sharing):隐藏的性能杀手与高并发优化实战

引言 在高性能Java应用中,开发者通常会关注锁竞争、GC频率等显性问题,但一个更隐蔽的陷阱——伪共享(False Sharing)​——却可能让精心设计的并发代码性能骤降50%以上。伪共享是由CPU缓存架构引发的底层问题,常见于多…...

【数据结构】2-3-3单链表的查找

数据结构知识点合集 知识点 单链表的按位查找 GetElem(L,i)&#xff1a;按位查找操作。获取表L中第i个位置的元素的值。 /*查找L中的第i个节点并返回*/ LNode *GetElm(LinkList L,int i) { /*位置不合法返回NULL*/ if(i<0) return NULL; /*p指向当前节…...

从0开始学linux韦东山教程第四章问题小结(1)

本人从0开始学习linux&#xff0c;使用的是韦东山的教程&#xff0c;在跟着课程学习的情况下的所遇到的问题的总结,理论虽枯燥但是是基础。说实在的越看视频越感觉他讲的有点乱后续将以他的新版PDF手册为中心&#xff0c;视频作为辅助理解的工具。参考手册为嵌入式Linux应用开发…...

TYUT-企业级开发教程-第三章

JAVAWEB的三大组件 在 Spring Boot 项目中&#xff0c;会自动将 Spring 容器中的 Servlet 、 Filter 、 Listener 实例注册为 Web 服务器中对应的组件。因此&#xff0c;可以将自定义的 Java Web 三大组件作为 Bean 添加到 Spring 容器中&#xff0c;以实现组件的注册。使用 S…...

【数据结构】2-3-2 单链表的插入删除

数据结构知识点合集 知识点 按位序插入带头节点链表 ListInsert(&L,i,e)&#xff1a;插入操作。在表L中的第i个位置上插入指定元素e&#xff1b;找到第 i-1 个结点&#xff0c;将新结点插入其后 。 /*在带头节点的单链表L的第i个位置插入元素e*/ bool ListInsert(LinkList …...

spark-配置yarn模式

1.上传并解压spark-3.1.1-bin-hadoop3.2.tgz &#xff08;/opt/software) 解压的命令是&#xff1a;tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module (cd /opt/software 进入software&#xff09; 2.重命名 解压之后的目录为spark-yarn&#xff08;原为spark-3.1.1-…...

鸿蒙系统电脑:开启智能办公新时代

鸿蒙系统电脑&#xff1a;开启智能办公新时代 引言 2025 年 5 月 8 日&#xff0c;华为正式推出了鸿蒙系统电脑&#xff0c;这款具有里程碑意义的产品&#xff0c;不仅彰显了华为在智能设备领域的创新实力&#xff0c;也为用户带来了全新的智能办公体验。在数字化转型加速的背…...

Ubuntu---omg又出bug了

自用遇到问题的合集 250518——桌面文件突然消失 ANS&#xff1a;参考博文...

COCO数据集神经网络性能现状2025.5.18

根据当前搜索结果&#xff0c;截至2025年5月&#xff0c;COCO数据集上性能最佳的神经网络模型及其关键参数如下&#xff1a; 1. D-FINE&#xff08;中科大团队&#xff09; 性能参数&#xff1a; 在COCO数据集上以78 FPS的速度实现了59.3%的平均精度&#xff08;AP&#xff0…...

elementplus menu 设置 activeindex

<el-menu:default-active"defaultActive"> 更改当前激活的 index 可以 绑定:default-active"defaultActive" 改变 defaultActive 值 即会改变 index 但不会改变路径 watch(() > route.fullPath,(newPath: string) > {defaultActive.value…...

张 心理问题的分类以及解决流程

心理问题的分类以及解决流程 目录 心理问题的分类以及解决流程心理问题的分类**一、心理问题的分类与层次****1. 一般心理问题****2. 严重心理问题****3. 神经症性心理问题(神经症)****4. 精神障碍**轻度问题以心理咨询==判断:时间(3个月,1年,大于1年=神经质),社会功能(…...

网页 H5 微应用接入钉钉自动登录

ℹ️关于云审批 云审批&#xff08;cloud approve&#xff09; &#xff0c;一款专为小微企业打造&#xff0c;支持多租户的在线审批神器。它简化了申请和审批流程&#xff0c;让您随时随地通过手机或电脑完成请款操作。员工一键提交申请&#xff0c;审批者即时响应&#xff0c…...

接口——类比摄像

最近迷上了买相机&#xff0c;大疆Pocket、Insta Go3、大疆Mini3、佳能50D、vivo徕卡人像大师&#xff08;狗头&#xff09;&#xff0c;在买配件的时候&#xff0c;发现1/4螺口简直是神中之神&#xff0c;这个万能接口让我想到计算机设计中的接口&#xff0c;遂有此篇—— 接…...

java每日精进 5.18【文件存储】

1.文件存储思路 支持将文件上传到三类存储器&#xff1a; 兼容 S3 协议的对象存储&#xff1a;支持 MinIO、腾讯云 COS、七牛云 Kodo、华为云 OBS、亚马逊 S3 等等。磁盘存储&#xff1a;本地、FTP 服务器、SFTP 服务器。数据库存储&#xff1a;MySQL、Oracle、PostgreSQL、S…...

LeetCode 394. 字符串解码详解:Java栈实现与逐行解析

文章目录 1. 问题描述2. 解决思路核心问题栈的应用遍历逻辑 3. 完整代码实现4. 关键代码解析处理右括号 ]处理嵌套的示例 5. 复杂度分析6. 总结 1. 问题描述 给定一个经过编码的字符串&#xff0c;要求将其解码为原始字符串。编码规则为 k[encoded_string]&#xff0c;表示方括…...

基于STC89C52的红外遥控的电子密码锁设计与实现

一、引言 电子密码锁作为一种安全便捷的门禁系统,广泛应用于家庭、办公室等场景。结合红外遥控功能,可实现远程控制开锁,提升使用灵活性。本文基于 STC89C52 单片机,设计一种兼具密码输入和红外遥控的电子密码锁系统,详细阐述硬件选型、电路连接及软件实现方案。 二、硬…...

Android 性能优化入门(一)—— 数据结构优化

1、概述 一款 app 除了要有令人惊叹的功能和令人发指交互之外&#xff0c;在性能上也应该追求丝滑的要求&#xff0c;这样才能更好地提高用户体验&#xff1a; 优化目的性能指标优化的方向更快流畅性启动速度页面显示速度(显示和切换)响应速度更稳定稳定性避免出现 应用崩溃&…...

深入理解Docker和K8S

深入理解Docker和K8S Docker 是大型架构的必备技能&#xff0c;也是云原生核心。Docker 容器化作为一种轻量级的虚拟化技术&#xff0c;其核心思想&#xff1a;将应用程序及其所有依赖项打包在一起&#xff0c;形成一个可移植的单元。 容器的本质是进程&#xff1a; 容器是在…...

5.18本日总结

一、英语 复习list3list28 二、数学 学习14讲部分内容&#xff0c;1000题13讲部分 三、408 学习计网5.3剩余内容 四、总结 计网TCP内容比较重要&#xff0c;连接过程等要时常复习&#xff1b;高数学到二重积分对定积分的计算相关方法有所遗忘&#xff0c;需要加强巩固。…...

muduo库TcpServer模块详解

Muduo库核心模块——TcpServer Muduo库的TcpServer模块是一个基于Reactor模式的高性能TCP服务端实现&#xff0c;负责管理监听端口、接受新连接、分发IO事件及处理连接生命周期。 一、核心组件与职责 Acceptor 监听指定端口&#xff0c;接受新连接&#xff0c;通过epoll监听l…...

深入理解 OpenCV 的 DNN 模块:从基础到实践

在计算机视觉领域蓬勃发展的当下&#xff0c;深度学习模型的广泛应用推动着技术的不断革新。OpenCV 作为一款强大且开源的计算机视觉库&#xff0c;其 DNN&#xff08;Deep Neural Network&#xff09;模块为深度学习模型的落地应用提供了高效便捷的解决方案。本文将以理论为核…...

MyBatis 延迟加载与缓存

一、延迟加载策略&#xff1a;按需加载&#xff0c;优化性能 1. 延迟加载 vs 立即加载&#xff1a;核心区别 立即加载&#xff1a;主查询&#xff08;如查询用户&#xff09;执行时&#xff0c;主动关联加载关联数据&#xff08;如用户的所有账号&#xff09;。 场景&#xf…...

6.2.2邻接表法-图的存储

知识总览&#xff1a; 为什么要用邻接表 因为邻接矩阵的空间复杂度高(O(n))&#xff0c;且不适合边少的稀疏图&#xff0c;所以有了邻接表 用代码表示顶点、图 声明顶点图信息 声明顶点用一维数组存储各个顶点的信息&#xff0c;一维数组字段包括2个&#xff0c;每个顶点的…...

【甲方安全建设】拉取镜像执行漏洞扫描教程

文章目录 前置知识镜像(Docker Image)是什么?镜像的 tag(标签)查看本地已有镜像的 tag查看远程仓库的所有 tag构建镜像与拉取镜像的区别正文安装docker拉取待扫描镜像安装 veinmind-runner 镜像下载 veinmind-runner 平行容器启动脚本快速扫描本地镜像/容器6. 生成 报告前…...

第四天的尝试

目录 一、每日一言 二、练习题 三、效果展示 四、下次题目 五、总结 一、每日一言 很抱歉的说一下&#xff0c;我昨天看白色巨塔电视剧&#xff0c;看的入迷了&#xff0c;同时也看出一些道理&#xff0c;学到东西&#xff1b; 但是把昨天的写事情给忘记了&#xff0c;今天…...

大数据场景下数据导出的架构演进与EasyExcel实战方案

一、引言&#xff1a;数据导出的演进驱动力 在数字化时代&#xff0c;数据导出功能已成为企业数据服务的基础能力。随着数据规模从GB级向TB级甚至PB级发展&#xff0c;传统导出方案面临三大核心挑战&#xff1a; ‌数据规模爆炸‌&#xff1a;单次导出数据量从万级到亿级的增长…...

svn: E170013 和 svn: E120171 的问题

在 Deepin23 上尝试用 svn 连接我的 Visual SVN 服务器&#xff0c;得到如下错误信息&#xff0c; > svn: E170013: Unable to connect to a repository at URL https://my.com/svn/mysource/branch_4.2.x > svn: E120171: 执行上下文错误: An error occurred during SSL…...

Limesurvay系统“48核心92GB服务器”优化方案

1、Redis maxmemory 16GB # 限制Redis内存&#xff08;预留足够空间给其他服务&#xff09; maxmemory-policy volatile-lru # 自动淘汰旧会话&#xff08;仅对带TTL的键&#xff09; save 300 100 # 仅保留一个条件减少阻塞 stop-writes-on-bgsave-error no #…...

DockerFile实战

背景 在上一篇文章中&#xff0c;我们对DockerFile有了一个较为深刻的认识&#xff0c;那么这篇文章&#xff0c;我将会向你展示如何自定义一个镜像并且在docker上运行。 一、基础指令 指令技术说明生产环境最佳实践典型错误示例​FROM​- 必须作为Dockerfile第一条指令 - 推…...

【Linux】简易版Shell实现(附源码)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;Linux 前言 之前我们学习了Linux的进程概念以及进程控制相关接口&#xff1a; 【Linux】进程控制-CSDN博客 本篇文章&#xff0c;我们将一起踏上一段有趣的旅程&a…...

MATLAB安装常见问题解决方案

目前新版本的matlab安装往往需要十几G的本地安装容量&#xff0c;例如matlab2022b、matlab2023b, 首先就是要保证本地硬盘空间足够大&#xff0c;如果没有足够的本地内存空间&#xff0c;那么可以尝试释放本地硬盘空间&#xff0c;或者安装所需内存空间较小的旧版本的matlab&am…...

在 Vue 中插入 B 站视频

前言 在 Vue 项目中&#xff0c;有时我们需要嵌入 B 站视频来丰富页面内容&#xff0c;为用户提供更直观的信息展示。本文将详细介绍在 Vue 中插入 B 站视频的多种方法。 使用<iframe>标签直接嵌入,<iframe>标签是一种简单直接的方式&#xff0c;可将 B 站视频嵌…...

【深度学习】#12 计算机视觉

主要参考学习资料&#xff1a; 《动手学深度学习》阿斯顿张 等 著 【动手学深度学习 PyTorch版】哔哩哔哩跟李沐学AI 目录 目标检测锚框交并比&#xff08;IoU&#xff09;锚框标注真实边界框分配偏移量计算损失函数 非极大值抑制预测 多尺度目标检测单发多框检测&#xff08;S…...

QT学习3

QT项目视图 1、List View清单视图 private:QListView *listview1; private slots:void slotClickedFunc(const QModelIndex &index); #include "widget.h" #include "ui_widget.h"#include <QStringListModel>//字符串列表模型 #include <QS…...

Vue 3 动态 ref 的使用方式(表格)

一、问题描述 先给大家简单介绍一下问题背景。我正在开发的项目中&#xff0c;有一个表格组件&#xff0c;其中一列是分镜描述&#xff0c;需要支持视频上传功能。用户可以为每一行的分镜描述上传对应的视频示例。然而&#xff0c;在实现过程中&#xff0c;出现了一个严重的问…...

FAST-DDS源码分析PDP(一)

准备开一个FAST-DDS源码分析系列&#xff0c;源码版本FAST-DDS 1.1.0版本。 FAST-DDS这种网络中间件是非常复杂的&#xff0c;所以前期先去分析每个类的作用是什么&#xff0c;然后在结合RTPS DOC&#xff0c;FAST-DDS DEMO,以及FAST-DDS的doc去串起来逻辑。 Builtin Discovery…...

Flutter与Kotlin Multiplatform(KMP)深度对比及鸿蒙生态适配解析

Flutter 与 Kotlin Multiplatform&#xff08;KMP&#xff09;深度对比及鸿蒙生态适配解析 在跨平台开发领域&#xff0c;Flutter 与 Kotlin Multiplatform&#xff08;KMP&#xff09;代表了两种不同的技术路线&#xff1a;前者以 “统一 UI 体验” 为核心&#xff0c;后者以…...

深入了解linux系统—— 基础IO(上)

文件 在之前学习C语言文件操作时&#xff0c;我们了解过什么是文件&#xff0c;这里简单回顾一下&#xff1a; 文件存在磁盘中&#xff0c;文件有分为程序文件、数据文件&#xff1b;二进制文件和文本文件等。 详细描述见文章&#xff1a;文件操作——C语言 文件在磁盘里&a…...

C++ map multimap 容器:赋值、排序、大小与删除操作

概述 map和multimap是C STL中的关联容器&#xff0c;它们存储的是键值对(key-value pairs)&#xff0c;并且会根据键(key)自动排序。两者的主要区别在于&#xff1a; map不允许重复的键multimap允许重复的键 本文将详细解析示例代码中涉及的map操作&#xff0c;包括赋值、排…...

EmuEdit

EmuEdit详解&#xff1a;统一多任务图像编辑的扩展性范式 引言&#xff1a;图像编辑的困境 近年来&#xff0c;扩散模型&#xff08;Diffusion Models&#xff09;在图像合成和编辑方面取得了巨大进展&#xff0c;如 Prompt-to-Prompt (P2P)、InstructPix2Pix、DiffEdit 等方法…...

Linux编译rpm包与deb包

注意&#xff1a; 本文内容于 2025-05-14 23:55:53 创建&#xff0c;可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容&#xff0c;请访问原文地址&#xff1a;编译rpm包与deb包。感谢您的关注与支持&#xff01; 近期在通过源码编译安装一些软件包时&#…...

GitHub 趋势日报 (2025年05月17日)

本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日整体趋势 Top 10 排名项目名称项目描述今日获星总星数语言1TapXWorld/ChinaTextbookPDF教材。⭐ 2471⭐ 22302Roff2public-apis/public-a…...

[创业之路-362]:企业战略管理案例分析-3-战略制定-华为使命、愿景、价值观的演变过程

一、华为使命、愿景、价值观的演变过程 1、创业初期&#xff08;1987 - 1994 年&#xff09;&#xff1a;生存导向&#xff0c;文化萌芽 使命愿景雏形&#xff1a;1994年华为提出“10年之后&#xff0c;世界通信行业三分天下&#xff0c;华为将占一份”的宏伟梦想&#xff0c…...

Android 性能优化入门(二)—— 内存优化

1、概述 1.1 Java 对象的生命周期 各状态含义&#xff1a; 创建&#xff1a;分配内存空间并调用构造方法应用&#xff1a;使用中&#xff0c;处于被强引用持有&#xff08;至少一个&#xff09;的状态不可见&#xff1a;不被强引用持有&#xff0c;应用程序已经不再使用该对象…...

(5)python爬虫--BeautifulSoup(bs4)

文章目录 [TOC](文章目录) 前言一、安装bs4二、bs4的基础使用2.1 创建soup对象2.2 根据标签名查找节点2.3 根据函数来查找节点1. find函数2. find_all函数3. select函数 三、使用bs4获取节点信息3.1 获取节点内容3.2 获取节点的属性3.3 获取节点的属性值 四、测试练习 总结 前言…...