座標上に円を描く

39 次查看(过去 30 天)
Saito
Saito 2019-11-1
回答: Saito 2019-11-21
X軸2点とY軸2点、合計4点を通過する円を座標上に描く(プロットする)のに、最も最適な方法を教えてください。 このような円をZ軸上では水平で、高さの異なるものをひとつのグラフに収めて2Dでも3D でも見れたら良いと思います。
  1 个评论
Yoshio
Yoshio 2019-11-1
编辑:Yoshio 2019-11-1
最適な方法とは、どのような規準で考えれられていますか?
プログラムサイズ、スピードやわかりやすさ等あると思いますが。
また
4点を通過する円について、この4点を与えるという条件下で、中心と半径を4点から計算した上で行ういうことで良いでしょうか?
その際、Kazuyaさんの質問にもありますが、4点が厳密に通る必要があるのか、誤差を許容してもよいのかどちらでしょう?

请先登录,再进行评论。

采纳的回答

Kazuya
Kazuya 2019-11-1
4点を厳密に通るか、なんとなくいい感じに通ればいいのかはわかりませんが、私であればまず円にフィッテイングして、plot3 関数でプロットを描きます。
円の式を求めるなら
が使えるかもしれません。Good luck!

更多回答(2 个)

Etsuo Maeda
Etsuo Maeda 2019-11-6
一般的にMathで解くならこうですかね。
clear; close all;
% set points [x y z]
p1 = [3 2 -1];
p2 = [1 3 -2];
p3 = [3 -1 -4];
p4 = [0 0 -2];
% set symbolic variables
syms x y z a b c r
% set equation for sphere
f = (x-a)^2 + (y-b)^2 + (z-c)^2 == r^2;
f1 = subs(f, [x, y, z], p1);
f2 = subs(f, [x, y, z], p2);
f3 = subs(f, [x, y, z], p3);
f4 = subs(f, [x, y, z], p4);
F = [f1; f2; f3; f4];
% solve equations
assume([a, b, c], 'real')
assume(r, 'positive')
sol = solve(F, [a, b, c, r]);
sol.a
sol.b
sol.c
sol.r
HTH

Saito
Saito 2019-11-21
皆様、
有難うございました。
Yoshioさん、点の上を通過する必要が有ります。Kazuyaさん、Maeda さんのアドバイス、有用です。使わせていただきます。

标签

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!