matlab解决几何问题情况是这样的,正方形300×300;里边有个直径为20的圆,如果以左下角为原点,原点出发作两条该圆的切线,交对面两边两个点(箭头指向位置),会出现上边的三种情况:比如1情
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/15 04:20:52
![matlab解决几何问题情况是这样的,正方形300×300;里边有个直径为20的圆,如果以左下角为原点,原点出发作两条该圆的切线,交对面两边两个点(箭头指向位置),会出现上边的三种情况:比如1情](/uploads/image/z/9353730-66-0.jpg?t=matlab%E8%A7%A3%E5%86%B3%E5%87%A0%E4%BD%95%E9%97%AE%E9%A2%98%E6%83%85%E5%86%B5%E6%98%AF%E8%BF%99%E6%A0%B7%E7%9A%84%2C%E6%AD%A3%E6%96%B9%E5%BD%A2300%C3%97300%EF%BC%9B%E9%87%8C%E8%BE%B9%E6%9C%89%E4%B8%AA%E7%9B%B4%E5%BE%84%E4%B8%BA20%E7%9A%84%E5%9C%86%2C%E5%A6%82%E6%9E%9C%E4%BB%A5%E5%B7%A6%E4%B8%8B%E8%A7%92%E4%B8%BA%E5%8E%9F%E7%82%B9%2C%E5%8E%9F%E7%82%B9%E5%87%BA%E5%8F%91%E4%BD%9C%E4%B8%A4%E6%9D%A1%E8%AF%A5%E5%9C%86%E7%9A%84%E5%88%87%E7%BA%BF%2C%E4%BA%A4%E5%AF%B9%E9%9D%A2%E4%B8%A4%E8%BE%B9%E4%B8%A4%E4%B8%AA%E7%82%B9%EF%BC%88%E7%AE%AD%E5%A4%B4%E6%8C%87%E5%90%91%E4%BD%8D%E7%BD%AE%EF%BC%89%2C%E4%BC%9A%E5%87%BA%E7%8E%B0%E4%B8%8A%E8%BE%B9%E7%9A%84%E4%B8%89%E7%A7%8D%E6%83%85%E5%86%B5%EF%BC%9A%E6%AF%94%E5%A6%821%E6%83%85)
matlab解决几何问题情况是这样的,正方形300×300;里边有个直径为20的圆,如果以左下角为原点,原点出发作两条该圆的切线,交对面两边两个点(箭头指向位置),会出现上边的三种情况:比如1情
matlab解决几何问题
情况是这样的,正方形300×300;里边有个直径为20的圆,如果以左下角为原点,原点出发作两条该圆的切线,交对面两边两个点(箭头指向位置),会出现上边的三种情况:
比如1情况:圆的位置(30,270)
比如2情况:圆的位置(270,270)
比如3情况:圆的位置(270,30)
请问如何用matlab编程实现呢?
需要求的,就是交对面两边的位置坐标
matlab解决几何问题情况是这样的,正方形300×300;里边有个直径为20的圆,如果以左下角为原点,原点出发作两条该圆的切线,交对面两边两个点(箭头指向位置),会出现上边的三种情况:比如1情
把下列代码保存为getposition.m,然后调用即可,(a,b)为圆心的坐标,输出为切线与正方形的交点坐标
function getposition(a,b)
if a<10||a>290||b<10||b>290
disp('圆不在正方形内')
return
end
if a==10
k1=inf;
k2=1/20*(b^2-100)/b;
else
k1=1/2/(a^2-100)*(2*a*b+20*(a^2-100+b^2)^(1/2));
k2=1/2/(a^2-100)*(2*a*b-20*(a^2-100+b^2)^(1/2));
end
if k1<1
disp(strcat('(300,',num2str(k1*300),'),(300,',num2str(k2*300),')'))
elseif k2>1
disp(strcat('(',num2str(300/k1),',300),(',num2str(300/k2),',300)'))
else
disp(strcat('(',num2str(300/k1),',300),(300,',num2str(k2*300),')'))
end