How to fit a trapezium or a square or an ellipse around this? Is there any way ?

2 views (last 30 days)
  2 Comments
KSSV
KSSV on 2 Feb 2017
Where you want to fit? question is not clear. You want to fit on the attached image?
L K
L K on 2 Feb 2017
yes on the attached image... suppose if i have a set of points and i have already fitted a curve around it...
like for example in the image shown,if you see there is already an ellipse kind of around those points...so now i want to fit a square or a trapezium around the ellipse

Sign in to comment.

Answers (1)

KSSV
KSSV on 2 Feb 2017
clear all ;
data = imread('fit.png') ;
h1 = axes ;
image([0 1], [0 1],data);
hold on
%%draw square
P = ginput(4) ;
pts = [P ; P(1,:)] ;
plot(pts(:,1),pts(:,2),'k') ;
click at the points you want to draw square/ trapezium or rectangle when cross is popped out.
  2 Comments
L K
L K on 2 Feb 2017
Edited: KSSV on 2 Feb 2017
by saying on attached image i meant ,i have plotted a similar curve...
heres the code
x=0:1:20;
y = abs(sqrt(x));
%[xx,yy] = pol2cart(x,y);
k = convhull(x, y);
xch = x(k);
ych = y(k);
%[xCH, yCH] = cart2pol(xch, ych);
plot(xch, ych, 'ro-',x,y,'b*');
and i want to give a boundary like a square /trapezium around this envelope...
KSSV
KSSV on 2 Feb 2017
When you have the data in hand it shall be more easy to plot what you want.
clc
clear all ;
x=0:1:20;
y = abs(sqrt(x));
%[xx,yy] = pol2cart(x,y);
k = convhull(x, y);
xch = x(k);
ych = y(k);
%[xCH, yCH] = cart2pol(xch, ych);
plot(xch, ych, 'ro-',x,y,'b*');
x0 = min(x) ; x1 = max(x) ;
y0 = min(y) ; y1 = max(y) ;
%%square
pts = [x0 y0 ; x0 y1 ; x1 y1 ; x1 y0 ; x0 y0] ;
hold on
plot(pts(:,1),pts(:,2),'r')
%%circel
c0 = 0.5*[x0+x1 y0+y1] ;
R = 10 ;
th = linspace(0,2*pi) ;
xc = c0(1)+R*cos(th) ;
yc = c0(2)+R*sin(th) ;
plot(xc,yc,'r')
axis equal

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!