凸多角形の外周を一定距離で囲む凸多角形

2 次查看(过去 30 天)
YA
YA 2022-10-19
评论: YA 2022-10-20
MATLABに関する質問です。
任意の凸多角形の各辺から平行に一定距離wで囲む凸多角形の各頂点の座標を求めたいです。
元の任意の凸多角形の頂点の座標は既知です。
物理的な意味合いとしては、凸多角形の外周に一定距離の安全マージンを設けた少し大き目の凸多角形を作るということです。
できるだけ計算負荷の少ない求め方が希望です。
ご意見やアドバイスをお持ちでしたらよろしくお願いいたします。

采纳的回答

Atsushi Ueno
Atsushi Ueno 2022-10-19
polybuffer関数を使います。
なお事前にpolyshape関数でpolyshape オブジェクトを作成する必要があります。
% 元の任意の凸多角形の頂点の座標(既知)から polyshape オブジェクトを作成
polyin = polyshape([1 2 2 3 3 4 4],[1 3 4 4 2 2 1]);
% 凸多角形の外周を一定距離で囲む凸多角形の各頂点の座標を求める
polyout1 = polybuffer(polyin,0.5,'JointType','miter');
% 求めた凸多角形の各頂点の座標
polyout1.Vertices
ans = 7×2
4.5000 0.5000 0.1910 0.5000 1.5000 3.1180 1.5000 4.5000 3.5000 4.5000 3.5000 2.5000 4.5000 2.5000
plot(polyin);
hold on
plot(polyout1);
hold off
  1 个评论
YA
YA 2022-10-20
ご回答ありがとうございます。
polybuffer関数というものがあったのですね。
非常に参考になりました。 ありがとうございました。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 基本的な多角形 的更多信息

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!