qq_41661878
csdn-唯一
采纳率0%
2021-04-29 15:55

Matlab将若干个圆按大小依次放在距离坐标原点最近的地方,圆于圆可以相切

100

能够随机生成若干圆,按要求排列。源码

比如说图片中1,2,3这样。尽可能靠近坐标原点,同时不和其他圆相交。

4就是不符合要求的

  • 点赞
  • 收藏
  • 复制链接分享

3条回答

  • technologist_24 CSDN技术专家团-黄老师 8天前

    能不能求一个点到圆的最短距离?参考一下

    function ret = p2curve( a,b,R,m,n )
    %   -----------------------------
    %   ------------ret--------------
    %   xmin ymin:距离最小点的横纵坐标
    %   dmin:     最小距离
    %   -----------------------------
    %   a,b :     圆的形心坐标
    %     R :     圆的半径
    %   m,n :     作图点的坐标
    %   -----------------------------
    syms x y u;
    c=(x-a)^2+(y-b)^2-R^2;
    d=(x-m)^2+(y-n)^2;
    h = d+u*c;
    dhdx=diff(h,x);
    dhdy=diff(h,y);
    dhdu=diff(h,u);
    sol=solve(dhdx==0,dhdy==0,dhdu==0);  %求的是解析解
    x=sol.x;
    y=sol.y;
    u=sol.u;
    d1=(x(1)-m)^2+(y(1)-n)^2;
    d2=(x(2)-m)^2+(y(2)-n)^2;
    if d1<=d2
        xmin=x(1);
        ymin=y(1);
        dmin=sqrt(d1);
    else
        xmin=x(2);
        ymin=y(2);
        dmin=sqrt(d2);
    end 
     
    ret(1)=xmin;
    ret(2)=ymin;
    ret(3)=dmin;
     
    end

    点赞 评论 复制链接分享
  • qq_41661878 csdn-唯一 3天前

    大佬们再看看啊,不会没人了吧

    点赞 评论 复制链接分享
  • QA_Assistant 有问必答小助手 8天前

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    点赞 评论 复制链接分享

相关推荐