how to make rectangle in circle?

4 ビュー (過去 30 日間)
Sierra
Sierra 2022 年 11 月 19 日
コメント済み: Matt J 2022 年 11 月 20 日
I want to make rectangles in circle.
I know the radius, rectangle's width and length.
please let me know how to do this
thanks
  3 件のコメント
DGM
DGM 2022 年 11 月 19 日
Sierra
Sierra 2022 年 11 月 20 日
I answerd to Matt J's!
could you guys look at that?

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

採用された回答

Matt J
Matt J 2022 年 11 月 19 日
編集済み: Matt J 2022 年 11 月 19 日
[X,Y]=ndgrid(-10:10);
r=arrayfun( @(x,y) nsidedpoly(4,'Center',[x,y],'Radius',1/sqrt(2)) , X(:),Y(:));
c=intersect(nsidedpoly(1000,'Radius',5), scale(r,[1,1.5]));
plot(c,'FaceColor','none')
  4 件のコメント
Sierra
Sierra 2022 年 11 月 20 日
Thanks again.
but My circle's origin point is not zero. so I added my circle's origin point.
width=0.0073;
length=0.0097;
circleRadius=0.0833;
[X,Y]=ndgrid(-circleRadius:width:circleRadius+width);
X(:) = X(:) + ARP_lon % origin x 126.7975
Y(:) = Y(:) + ARP_lat % origin y 37.5569
r=arrayfun( @(x,y) nsidedpoly(4,'Center',[x,y],'Radius',width/sqrt(2)) , X(:),Y(:));
c=intersect(nsidedpoly(1000,'Radius',circleRadius), scale(r,[1,length/width]));
plot(c,'FaceColor','none'); %axis equal
but it didn't work well.
could you explain more?
Matt J
Matt J 2022 年 11 月 20 日
width=1;
length=1.3;
circleRadius=10;
[X,Y]=ndgrid(-circleRadius:width:circleRadius+width);
r=arrayfun( @(x,y) nsidedpoly(4,'Center',[x,y],'Radius',width/sqrt(2)) , X(:),Y(:));
c=intersect(nsidedpoly(1000,'Radius',circleRadius), scale(r,[1,length/width]));
c=translate(c,ARP_lon,ARP_lat);
plot(c,'FaceColor','none'); axis equal

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

その他の回答 (1 件)

Image Analyst
Image Analyst 2022 年 11 月 19 日
See the FAQ:
Then plot it with plot and then for each x and y value you want find the end points of a line segment and use line() or plot() to draw the line from one side of the circle to the other. It's easy but if you really can't figure it out then write back.
  3 件のコメント
Image Analyst
Image Analyst 2022 年 11 月 20 日
You do not ned to know the crossing/intersection coordinates of the vertical and horizontal lines inside the circle. All you need to know for the horizontal lines is the y value and the two points on the circle closest to that y value. Similar for the lines in the other direction. But it looks like @Matt J suggested a different approach and you accepted that so I won't proceed with my approach.
Sierra
Sierra 2022 年 11 月 20 日
Thanks for your answer!

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

カテゴリ

Help Center および File ExchangeDates and Time についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by