大黄菜头 2021-10-01 21:30 采纳率: 20%
浏览 38

matlab 寻找曲线上距离某个点为定值的点坐标

总体问题描述如下:

img


为了直观让问题更直观,可以采用下面这个分段函数作为路径。其中L的长度为2。

img

另附一个小问题:由于路径是离散点,所以可能求出来的B点可能不在这些离散点上面,那是不是可以通过spline差值来得到目标B点么??又或者说就把目标点B归为距离离散点较近的点的坐标又该怎么实现呢??

  • 写回答

1条回答 默认 最新

  • joel_1993 2021-10-01 22:35
    关注

    这个就这么做!

    x = -pi:1:pi;%x自己设置
    y = 3*sin(x);%y自己设置
    x0 = 0.5;%某个点
    y0 = 1;%某个点
    L = 2;%距离为L
    minF = @(xp)abs((spline(x,y,xp)-y0)^2+(xp-x0)^2-L^2);
    [xp1, minFval] = fminsearch(minF, 1.5);%初值选1.5
    yp1 = spline(x,y,xp1);
    [xp2, minFval] = fminsearch(minF, 0);%初值选0
    yp2 = spline(x,y,xp2);
    plot(x,y,'b--s');
    xx = linspace(min(x),max(x),101);
    yy = spline(x,y,xx);
    hold on
    plot(xx,yy,'r-')
    plot([x0,xp1],[y0,yp1],'g-o','markersize',5,'markerfacecolor','g')
    plot([x0,xp2],[y0,yp2],'g-o','markersize',5,'markerfacecolor','g')
    axis equal
    plot(x0,y0,'ro','markersize',10,'markerfacecolor','r')
    
    

    可以得到绿色的两个点到中间的给定的红色点(x0,y0)的距离都是L=2

    img

    这种方法非常简便有效,但是初值的选取很有讲究,自己好好探索哦

    评论

报告相同问题?

问题事件

  • 创建了问题 10月1日

悬赏问题

  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 qgcomp混合物线性模型分析的代码出现错误:Model aliasing occurred
  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答
  • ¥20 在本地部署CHATRWKV时遇到了AttributeError: 'str' object has no attribute 'requires_grad'