matlab解决几何问题情况是这样的,正方形300×300;里边有个直径为20的圆,如果以左下角为原点,原点出发作两条该圆的切线,交对面两边两个点(箭头指向位置),会出现上边的三种情况:比如1情
来源:学生作业帮助网 编辑:六六作业网 时间:2024/10/03 04:44:02
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