最近、私はanother threadを投稿しました。答えは本当に役に立ちました。 this referenceから、私は2つの交差する円のコードを書こうとしました。円の交点を見つける際の問題
私は自分のコードに問題があったと思います。その結果、交差点の接続線の中間点が得られます。私は自分のコードに何が問題なのかを知りません。
私はループを処理するのが難しいと思っています。私は、ベクトルの実際の長さを必要とするが、私はループにそれを書いた場合、
i+1
のために私がどんな「<」演算子を見つけることができませんと非常に自然である(私にエラーを示している:(()
は私のコードです -
Xs = [150,130];% x coordinates of center of circles
Ys = [100,250];% y coordinates of center of circles
Rs = [100,70];% radius of circles
C=Imread('spinks_map.png');
figure, Imshow(C)
hold on;
simple_draw_circle(Xs, Ys, Rs);
for i=1:length(Xs)-1
dsq(i) = ((Xs(i+1)- Xs(i))^2) + ((Ys(i+1) - Ys(i))^2);
K(i)= (sqrt((((Rs(i)+Rs(i+1))^2)-dsq(i))-(dsq(i)-(Rs(i)-Rs(i+1))^2)))/4;
x(i) = ((Xs(i+1)+Xs(i))/2) + ((Xs(i+1)-Xs(i))*(Rs(i)^2-Rs(i+1)^2)/dsq(i))/2 - 2*(Ys(i+1)-Ys(i))*(K(i)/dsq(i));
y(i) = ((Ys(i+1)+Ys(i))/2) + ((Ys(i+1)-Ys(i))*(Rs(i)^2-Rs(i+1)^2)/dsq(i))/2 +(-2)*(Xs(i+1)-Xs(i))*(K(i)/dsq(i));
end
scatter(x(1),y(1),'filled');
@zeb。 – Sevenless