作业帮 > 综合 > 作业

matlab解决几何问题

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/04/30 20:02:25
matlab解决几何问题


情况是这样的,正方形300×300;里边有个直径为20的圆,如果以左下角为原点,原点出发作两条该圆的切线,交对面两边两个点(箭头指向位置),会出现上边的三种情况:
比如1情况:圆的位置(30,270)
比如2情况:圆的位置(270,270)    
比如3情况:圆的位置(270,30)

请问如何用matlab编程实现呢?
需要求的,就是交对面两边的位置坐标
matlab解决几何问题
把下列代码保存为getposition.m,然后调用即可,(a,b)为圆心的坐标,输出为切线与正方形的交点坐标
function getposition(a,b)
if a290||b290
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 k11
disp(strcat('(',num2str(300/k1),',300),(',num2str(300/k2),',300)'))
else
disp(strcat('(',num2str(300/k1),',300),(300,',num2str(k2*300),')'))
end