matlab中贝塞尔曲线和直线求交_直线插补

本文介绍了插补在数控系统中的重要性,特别是直线插补。针对非直线和圆弧曲线的插补问题,文中提到了B样条曲线插补,重点讨论了MATLAB中如何实现直线插补,并提供了核心代码,同时预告了后续将详述圆弧和其他复杂曲线的插补方法。
摘要由CSDN通过智能技术生成

插补(Interpolation),即机床数控系统依照一定方法确定刀具运动轨迹的过程。数控装置根据输入的零件程序的信息,将程序段所描述的曲线的起点、终点之间的空间进行数据密化,从而形成要求的轮廓轨迹,这种“数据密化”机能就称为“插补”。根据加工曲线的类型,可以分为直线插补,圆弧插补,抛物线插补,样条线插补等。

传统的 CNC 只提供直线和圆弧插补,对于非直线和圆弧曲线则采用直线和圆弧分段拟合的方法进行插补。这种方法在处理复杂曲线时会导致数据量大、精度差、进给速度不均、编程复杂等一系列问题,必然对加工质量和加工成本造成较大的影响。近年来,国内外的学者对此进行了大量的深入研究,由此也产生了很多新的插补方法。如A(AKIMA)样条曲线插补、C(CUBIC)样条曲线插补、贝塞尔(Bezier)曲线插补、PH(Pythagorean-Hodograph)曲线插补、B 样条曲线插补等。由于B样条类曲线的诸多优点,尤其是在表示和设计自由型曲线曲面形状时显示出的强大功能,使得人们关于自由空间曲线曲面的直接插补算法的研究多集中在它身上。下面先介绍最简单常用的直线插补,接下来细说圆弧及其它复杂曲线的插补

直线插补

在一个给定平面内,给定两点P1, P2, 以及脉冲当量pulse。对两点之间的空间数密化。这就叫直线插补

核心代码

    
QPointF startPoint; //起始点
QPointF endPoint; //结束点
QPointF curPoint; //当前点
qreal pulseEqu; //脉冲当量

void Interpolation::LineInterpolation()
{
curPoint.setX(startPoint.rx());
curPoint.setY(startPoint.ry());

qreal dev_fi = endPoint.ry() * curPoint.rx() - endPoint.rx()*curPoint.ry();
qreal endJudge = qAbs(endPoint.rx() - curPoint.rx()) + qAbs(endPoint.ry() - curPoint.ry());

while (endJudge>0) {
if(dev_fi>=0){
if(endPoint.rx()>=0)
curPoint.rx() += pulseEqu;
else
curPoint.rx() -= pulseEqu;
dev_fi -= qAbs(endPoint.ry());

}
else{
if(endPoint.ry()>=0)
curPoint.ry() += pulseEqu;
else
curPoint.ry() -= pulseEqu;
dev_fi += qAbs(endPoint.rx());
}
endJudge -= pulseEqu;
v_points.append(curPoint);
}

}


效果展示

4dca9fcf0776f86291d55a82b7380d55.png

完整代码见

https://onedrive.live.com/view.aspx?resid=D4978143B447D52A!23270&id=documents&wd=target(插补.one|A5970854-D3AE-41CF-9A58-8EDD59297D96%2F直线插补|501C3D5D-0D09-40E8-AB75-F32124D334DE%2F) onenote:https://d.docs.live.net/d4978143b447d52a/文档/数控技术/插补.one#直线插补&section-id={A5970854-D3AE-41CF-9A58-8EDD59297D96}&page-id={501C3D5D-0D09-40E8-AB75-F32124D334DE}&end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值