Connecting 3-points by arc

How can I plot an arc that can connect three-point in the x,y plane, the points are 2*1 matrix. Actually, I look to create a function so I can use it many times.

Answers (1)

Note that this code considers the points to be unordered, and connects them in x order.
Also, this code is not designed to be able to handle vertical (or near vertical) connections. For example connect3([1;1], [1;3], [2,2]) will give it problems.
connect3(randn(2,1), randn(2,1), randn(2,1));
connect3(rand(2,1)*2, rand(2,1)*2, rand(2,1)*2);
function connect3(A, B, C)
x = [A(1); B(1); C(1)];
y = [A(2); B(2); C(2)];
[x, idx] = sort(x);
y = y(idx);
p = polyfit(x, y, 2);
xp = linspace(x(1),x(3),20);
yp = polyval(p, xp);
line(xp, yp);
end

5 Comments

Thank you so much
This is parabola, not an arc
Oh? How is an arc defined? Is a parabola not a connected subset of a differentiateable function?
https://en.m.wikipedia.org/wiki/Curve#Differentiable_arc
I thought arc is a part of circle
Nope, any curve that you can differentiate.

Sign in to comment.

Categories

Tags

Asked:

on 13 Mar 2021

Commented:

on 13 Mar 2021

Community Treasure Hunt

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

Start Hunting!