Has MATLAB implemented a polygon offset function?

22 次查看(过去 30 天)
Hi! I have 2D CMM data mapping the inside of a pipe at a plane of interest prior to coating and coating thickness measurements at various points inside the pipe. I want to plot the CMM data, offset each wall of the pipe by its corresponding thickness, and use the offset data to calculate the coated cross-sectional area of the pipe (see diagram below). Is there a simple way to do this? If not, does MATLAB have a built-in function to offset the data by a uniform thickness (similarly to CAD software)?
Thanks!

回答(1 个)

Matt J
Matt J 2021-1-8
编辑:Matt J 2021-1-8
  2 个评论
Stephanie Farney
Stephanie Farney 2021-1-13
Thank you, that got me on the right track. However, I'm still unable to offset the data by a uniform amount. If it helps, my code resembles the following:
bound = boundary(data.X,data.Y);
contour = polyshape(data.X(bound),data.Y(bound));
coatedContour = polybuffer(contour,avgThickness);
When I plot contour and coatContour, the coating thickness on the top and bottom walls is significantly thicker than the coating on the side walls. As a note, using the boundary gets me an area that better matches the uncoated area calculated by the supplier, but I still have the same problem when I exclude it.
Do you know what might cause this issue?
Thanks again!
Steven Lord
Steven Lord 2021-1-13
Can you share a small sample of data with which you can reproduce this behavior? Please include either a data set that's small enough to include as text in a comment or a small MAT-file as an attachment to a comment.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Elementary Polygons 的更多信息

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by