MATLAB:用“求解”[圆+线性方程]求交点

时间:2013-10-08 09:16:34

标签: matlab

当线性线穿过圆心(x,y)时,我想找到两(2)个交点。

r  =  13   radius
x  =  0    x-coordinate
y  =  7    y-coordinate
k  =  9    slope value(?) y=kx+m y=9x+m

所以首先我画一个r = 13且中心为(0,7)的圆圈。

r=13
x=0
y=7
k=9

hold on
z = 0:pi/50:2*pi;
xunit = r * cos(z) + x;
yunit = r * sin(z) + y;
plot(xunit, yunit);

我想知道是否有可能以更简单的方式绘制圆圈?像

这样的东西
(x−cx)^2 + (y −cy)^2 = r^2
(x-0)^2 + (y-7) = 13^2

我试过这个

plot((x−cx)^2 + (y −cy)^2 = r^2)

它根本不做任何事情,因此代码必须不正确。

那么,我正在通过计算

绘制线性方程
y=kx+m
k=9

这条线路已经过去了(0,7)

7=9*0+m
m=7
y=9x+7

所以既然我是MatLab的新手,我花了一些时间来画线。我没有找到任何简单的函数来绘制它所以我画了这样的一行:

我为x或y取了一些随机值并计算了一些坐标。

(0,7) 
(2,25)
(-2,-11)

plot([-2,2],[-11,25])

结果图片:http://i.imgur.com/ag6HJlm.jpg

所以现在我只需要用“求解”功能来解决交点。好的,我真的很感激一些帮助!

最好的问候

1 个答案:

答案 0 :(得分:0)

这是一种方法:

%Place your lines and figures on the grid
linexypos = eye(100);
shapexypos = flipud(eye(100)) ;

% Guess where they come together
intersection = filter2(ones(3),linexypos + shapexypos);
[quality, loc] = max(intersection(:))

请注意,您必须猜测,因为宽度为1像素的两条线可能没有完全相同的位置。 (考虑[1 0; 0 1][0 1;1 0],它们交叉但从不完全重叠。

如果您想要了解情况,请尝试contour(intersection)