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

3 ビュー (過去 30 日間)
L K
L K 2017 年 2 月 2 日
コメント済み: KSSV 2017 年 2 月 2 日
  2 件のコメント
KSSV
KSSV 2017 年 2 月 2 日
Where you want to fit? question is not clear. You want to fit on the attached image?
L K
L K 2017 年 2 月 2 日
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

サインインしてコメントする。

回答 (1 件)

KSSV
KSSV 2017 年 2 月 2 日
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 件のコメント
L K
L K 2017 年 2 月 2 日
編集済み: KSSV 2017 年 2 月 2 日
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 2017 年 2 月 2 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSurfaces and Volumes についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by