Draw bounding region by list of points
$begingroup$
Suppose you have a list of data points, either in 2D or 3D; is it possible to plot the minimal bounding region containing all the points?
Ignoring holes etc.
plotting regions computational-geometry
$endgroup$
|
show 1 more comment
$begingroup$
Suppose you have a list of data points, either in 2D or 3D; is it possible to plot the minimal bounding region containing all the points?
Ignoring holes etc.
plotting regions computational-geometry
$endgroup$
$begingroup$
my gut instinct is that InterpolationPoint might be the option to consider
$endgroup$
– MKF
yesterday
3
$begingroup$
Are you looking forConvexHullMesh
?
$endgroup$
– MarcoB
yesterday
$begingroup$
Exactly! is there a way to apply smoothing to it? and perhaps some opacity?
$endgroup$
– MKF
yesterday
$begingroup$
Opacity: sure, it's somewhere in the options. What do you mean by "smoothing" though? Do you have an example in mind?
$endgroup$
– MarcoB
yesterday
$begingroup$
It seems convexhullmesh will give a quite polygonal/linear shape. Is there anyway to somehow round the shape?
$endgroup$
– MKF
yesterday
|
show 1 more comment
$begingroup$
Suppose you have a list of data points, either in 2D or 3D; is it possible to plot the minimal bounding region containing all the points?
Ignoring holes etc.
plotting regions computational-geometry
$endgroup$
Suppose you have a list of data points, either in 2D or 3D; is it possible to plot the minimal bounding region containing all the points?
Ignoring holes etc.
plotting regions computational-geometry
plotting regions computational-geometry
edited yesterday
MarcoB
37k556113
37k556113
asked yesterday
MKFMKF
2108
2108
$begingroup$
my gut instinct is that InterpolationPoint might be the option to consider
$endgroup$
– MKF
yesterday
3
$begingroup$
Are you looking forConvexHullMesh
?
$endgroup$
– MarcoB
yesterday
$begingroup$
Exactly! is there a way to apply smoothing to it? and perhaps some opacity?
$endgroup$
– MKF
yesterday
$begingroup$
Opacity: sure, it's somewhere in the options. What do you mean by "smoothing" though? Do you have an example in mind?
$endgroup$
– MarcoB
yesterday
$begingroup$
It seems convexhullmesh will give a quite polygonal/linear shape. Is there anyway to somehow round the shape?
$endgroup$
– MKF
yesterday
|
show 1 more comment
$begingroup$
my gut instinct is that InterpolationPoint might be the option to consider
$endgroup$
– MKF
yesterday
3
$begingroup$
Are you looking forConvexHullMesh
?
$endgroup$
– MarcoB
yesterday
$begingroup$
Exactly! is there a way to apply smoothing to it? and perhaps some opacity?
$endgroup$
– MKF
yesterday
$begingroup$
Opacity: sure, it's somewhere in the options. What do you mean by "smoothing" though? Do you have an example in mind?
$endgroup$
– MarcoB
yesterday
$begingroup$
It seems convexhullmesh will give a quite polygonal/linear shape. Is there anyway to somehow round the shape?
$endgroup$
– MKF
yesterday
$begingroup$
my gut instinct is that InterpolationPoint might be the option to consider
$endgroup$
– MKF
yesterday
$begingroup$
my gut instinct is that InterpolationPoint might be the option to consider
$endgroup$
– MKF
yesterday
3
3
$begingroup$
Are you looking for
ConvexHullMesh
?$endgroup$
– MarcoB
yesterday
$begingroup$
Are you looking for
ConvexHullMesh
?$endgroup$
– MarcoB
yesterday
$begingroup$
Exactly! is there a way to apply smoothing to it? and perhaps some opacity?
$endgroup$
– MKF
yesterday
$begingroup$
Exactly! is there a way to apply smoothing to it? and perhaps some opacity?
$endgroup$
– MKF
yesterday
$begingroup$
Opacity: sure, it's somewhere in the options. What do you mean by "smoothing" though? Do you have an example in mind?
$endgroup$
– MarcoB
yesterday
$begingroup$
Opacity: sure, it's somewhere in the options. What do you mean by "smoothing" though? Do you have an example in mind?
$endgroup$
– MarcoB
yesterday
$begingroup$
It seems convexhullmesh will give a quite polygonal/linear shape. Is there anyway to somehow round the shape?
$endgroup$
– MKF
yesterday
$begingroup$
It seems convexhullmesh will give a quite polygonal/linear shape. Is there anyway to somehow round the shape?
$endgroup$
– MKF
yesterday
|
show 1 more comment
2 Answers
2
active
oldest
votes
$begingroup$
For the 2D case, you can use the shape of the joint to give rounded corners to your shape. For instance:
pts = RandomReal[{-5, 5}, {20, 2}];
ConvexHullMesh[pts]
Retrieve the mesh expressed as a Polygon
object and style to your liking:
Graphics[{
Darker@Blue,
EdgeForm[{Darker@Blue, Thickness[0.09], JoinForm["Round"]}],
Cases[Normal[chm["Graphics"]], _Polygon, All]
}]
$endgroup$
$begingroup$
Awesome, thanks again!
$endgroup$
– MKF
yesterday
$begingroup$
@MKF You are welcome!
$endgroup$
– MarcoB
yesterday
add a comment |
$begingroup$
Given a set of random 3D points, you can create a mesh that represents the minimum bounding region using BoundingRegion
or ConvexHullMesh
as MarcoB suggested. ConvexHullMesh
is probably the simplest, though BoundingRegion
has some nice options for other sorts of regions like the smallest sphere or cuboid.
BlockRandom[SeedRandom[1234]; pts = RandomReal[{-1, 1}, {50, 3}];]
cvx = ConvexHullMesh[pts]
br = BoundingRegion[pts, "MinConvexPolyhedron"]
This should give you two meshes that look identical to this:
You can choose whichever function you prefer. It's also possible to show the points themselves along with the mesh:
Show[HighlightMesh[br, Style[2, Opacity[0.5]]], Graphics3D[Point[pts]]]
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "387"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f192738%2fdraw-bounding-region-by-list-of-points%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
For the 2D case, you can use the shape of the joint to give rounded corners to your shape. For instance:
pts = RandomReal[{-5, 5}, {20, 2}];
ConvexHullMesh[pts]
Retrieve the mesh expressed as a Polygon
object and style to your liking:
Graphics[{
Darker@Blue,
EdgeForm[{Darker@Blue, Thickness[0.09], JoinForm["Round"]}],
Cases[Normal[chm["Graphics"]], _Polygon, All]
}]
$endgroup$
$begingroup$
Awesome, thanks again!
$endgroup$
– MKF
yesterday
$begingroup$
@MKF You are welcome!
$endgroup$
– MarcoB
yesterday
add a comment |
$begingroup$
For the 2D case, you can use the shape of the joint to give rounded corners to your shape. For instance:
pts = RandomReal[{-5, 5}, {20, 2}];
ConvexHullMesh[pts]
Retrieve the mesh expressed as a Polygon
object and style to your liking:
Graphics[{
Darker@Blue,
EdgeForm[{Darker@Blue, Thickness[0.09], JoinForm["Round"]}],
Cases[Normal[chm["Graphics"]], _Polygon, All]
}]
$endgroup$
$begingroup$
Awesome, thanks again!
$endgroup$
– MKF
yesterday
$begingroup$
@MKF You are welcome!
$endgroup$
– MarcoB
yesterday
add a comment |
$begingroup$
For the 2D case, you can use the shape of the joint to give rounded corners to your shape. For instance:
pts = RandomReal[{-5, 5}, {20, 2}];
ConvexHullMesh[pts]
Retrieve the mesh expressed as a Polygon
object and style to your liking:
Graphics[{
Darker@Blue,
EdgeForm[{Darker@Blue, Thickness[0.09], JoinForm["Round"]}],
Cases[Normal[chm["Graphics"]], _Polygon, All]
}]
$endgroup$
For the 2D case, you can use the shape of the joint to give rounded corners to your shape. For instance:
pts = RandomReal[{-5, 5}, {20, 2}];
ConvexHullMesh[pts]
Retrieve the mesh expressed as a Polygon
object and style to your liking:
Graphics[{
Darker@Blue,
EdgeForm[{Darker@Blue, Thickness[0.09], JoinForm["Round"]}],
Cases[Normal[chm["Graphics"]], _Polygon, All]
}]
answered yesterday
MarcoBMarcoB
37k556113
37k556113
$begingroup$
Awesome, thanks again!
$endgroup$
– MKF
yesterday
$begingroup$
@MKF You are welcome!
$endgroup$
– MarcoB
yesterday
add a comment |
$begingroup$
Awesome, thanks again!
$endgroup$
– MKF
yesterday
$begingroup$
@MKF You are welcome!
$endgroup$
– MarcoB
yesterday
$begingroup$
Awesome, thanks again!
$endgroup$
– MKF
yesterday
$begingroup$
Awesome, thanks again!
$endgroup$
– MKF
yesterday
$begingroup$
@MKF You are welcome!
$endgroup$
– MarcoB
yesterday
$begingroup$
@MKF You are welcome!
$endgroup$
– MarcoB
yesterday
add a comment |
$begingroup$
Given a set of random 3D points, you can create a mesh that represents the minimum bounding region using BoundingRegion
or ConvexHullMesh
as MarcoB suggested. ConvexHullMesh
is probably the simplest, though BoundingRegion
has some nice options for other sorts of regions like the smallest sphere or cuboid.
BlockRandom[SeedRandom[1234]; pts = RandomReal[{-1, 1}, {50, 3}];]
cvx = ConvexHullMesh[pts]
br = BoundingRegion[pts, "MinConvexPolyhedron"]
This should give you two meshes that look identical to this:
You can choose whichever function you prefer. It's also possible to show the points themselves along with the mesh:
Show[HighlightMesh[br, Style[2, Opacity[0.5]]], Graphics3D[Point[pts]]]
$endgroup$
add a comment |
$begingroup$
Given a set of random 3D points, you can create a mesh that represents the minimum bounding region using BoundingRegion
or ConvexHullMesh
as MarcoB suggested. ConvexHullMesh
is probably the simplest, though BoundingRegion
has some nice options for other sorts of regions like the smallest sphere or cuboid.
BlockRandom[SeedRandom[1234]; pts = RandomReal[{-1, 1}, {50, 3}];]
cvx = ConvexHullMesh[pts]
br = BoundingRegion[pts, "MinConvexPolyhedron"]
This should give you two meshes that look identical to this:
You can choose whichever function you prefer. It's also possible to show the points themselves along with the mesh:
Show[HighlightMesh[br, Style[2, Opacity[0.5]]], Graphics3D[Point[pts]]]
$endgroup$
add a comment |
$begingroup$
Given a set of random 3D points, you can create a mesh that represents the minimum bounding region using BoundingRegion
or ConvexHullMesh
as MarcoB suggested. ConvexHullMesh
is probably the simplest, though BoundingRegion
has some nice options for other sorts of regions like the smallest sphere or cuboid.
BlockRandom[SeedRandom[1234]; pts = RandomReal[{-1, 1}, {50, 3}];]
cvx = ConvexHullMesh[pts]
br = BoundingRegion[pts, "MinConvexPolyhedron"]
This should give you two meshes that look identical to this:
You can choose whichever function you prefer. It's also possible to show the points themselves along with the mesh:
Show[HighlightMesh[br, Style[2, Opacity[0.5]]], Graphics3D[Point[pts]]]
$endgroup$
Given a set of random 3D points, you can create a mesh that represents the minimum bounding region using BoundingRegion
or ConvexHullMesh
as MarcoB suggested. ConvexHullMesh
is probably the simplest, though BoundingRegion
has some nice options for other sorts of regions like the smallest sphere or cuboid.
BlockRandom[SeedRandom[1234]; pts = RandomReal[{-1, 1}, {50, 3}];]
cvx = ConvexHullMesh[pts]
br = BoundingRegion[pts, "MinConvexPolyhedron"]
This should give you two meshes that look identical to this:
You can choose whichever function you prefer. It's also possible to show the points themselves along with the mesh:
Show[HighlightMesh[br, Style[2, Opacity[0.5]]], Graphics3D[Point[pts]]]
answered yesterday
MassDefectMassDefect
1,843311
1,843311
add a comment |
add a comment |
Thanks for contributing an answer to Mathematica Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f192738%2fdraw-bounding-region-by-list-of-points%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
$begingroup$
my gut instinct is that InterpolationPoint might be the option to consider
$endgroup$
– MKF
yesterday
3
$begingroup$
Are you looking for
ConvexHullMesh
?$endgroup$
– MarcoB
yesterday
$begingroup$
Exactly! is there a way to apply smoothing to it? and perhaps some opacity?
$endgroup$
– MKF
yesterday
$begingroup$
Opacity: sure, it's somewhere in the options. What do you mean by "smoothing" though? Do you have an example in mind?
$endgroup$
– MarcoB
yesterday
$begingroup$
It seems convexhullmesh will give a quite polygonal/linear shape. Is there anyway to somehow round the shape?
$endgroup$
– MKF
yesterday