0

当直线穿过圆的中心 (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

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

此致

4

1 回答 1

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)

于 2013-10-08T14:07:39.703 回答