How can I create an evenly distributed mesh from a shape?
up vote
1
down vote
favorite
I'm trying to convert some 2D shapes (without holes) into meshes with evenly distributed vertices.
Before the conversion the shapes are edge loops with no internal vertices.
After the conversion I want the following properties.
- Every edge vertex should connect to some internal vertex.
- The added vertices should be evenly placed within the shape or on the edge.
No added edge should cross outside the shape.
A parameter should be able to regulate how many vertices are added, like maximum edge length, minimum vertex density or some such thing. It doesn't matter all that much as long as the mesh doesn't end up very dense or sparse in the interior.
I'm going map vectors to the vertices in the end, that's why I want to create meshes with internal vertices.
geometry triangulation
add a comment |
up vote
1
down vote
favorite
I'm trying to convert some 2D shapes (without holes) into meshes with evenly distributed vertices.
Before the conversion the shapes are edge loops with no internal vertices.
After the conversion I want the following properties.
- Every edge vertex should connect to some internal vertex.
- The added vertices should be evenly placed within the shape or on the edge.
No added edge should cross outside the shape.
A parameter should be able to regulate how many vertices are added, like maximum edge length, minimum vertex density or some such thing. It doesn't matter all that much as long as the mesh doesn't end up very dense or sparse in the interior.
I'm going map vectors to the vertices in the end, that's why I want to create meshes with internal vertices.
geometry triangulation
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I'm trying to convert some 2D shapes (without holes) into meshes with evenly distributed vertices.
Before the conversion the shapes are edge loops with no internal vertices.
After the conversion I want the following properties.
- Every edge vertex should connect to some internal vertex.
- The added vertices should be evenly placed within the shape or on the edge.
No added edge should cross outside the shape.
A parameter should be able to regulate how many vertices are added, like maximum edge length, minimum vertex density or some such thing. It doesn't matter all that much as long as the mesh doesn't end up very dense or sparse in the interior.
I'm going map vectors to the vertices in the end, that's why I want to create meshes with internal vertices.
geometry triangulation
I'm trying to convert some 2D shapes (without holes) into meshes with evenly distributed vertices.
Before the conversion the shapes are edge loops with no internal vertices.
After the conversion I want the following properties.
- Every edge vertex should connect to some internal vertex.
- The added vertices should be evenly placed within the shape or on the edge.
No added edge should cross outside the shape.
A parameter should be able to regulate how many vertices are added, like maximum edge length, minimum vertex density or some such thing. It doesn't matter all that much as long as the mesh doesn't end up very dense or sparse in the interior.
I'm going map vectors to the vertices in the end, that's why I want to create meshes with internal vertices.
geometry triangulation
geometry triangulation
asked yesterday
Steinbitglis
1134
1134
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
2
down vote
The devil is in the details, but the backbone of the algorithm would be as follows:
Given some desired maximum edge length $m$
1) refine the edges of the shape so no edge is longer than $m$. Let $V$ be the set of all resulting vertices.
2) compute the Delauney triangulation $T$ of $V$
3) add to $V$ vertices that are the centroids of the triangles in $T$ that have edges longer than $m$.
4) update the Delauney triangulation $T$ of $V$. If $T$ has triangles with edges longer than $m$, go to step 3).
5) Optionally smooth the distribution of vertices by computing each interior vertex to be the average of its neighbors.
For more details see Sections 5 and 6 of Filling Holes in Meshes and the references there.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
The devil is in the details, but the backbone of the algorithm would be as follows:
Given some desired maximum edge length $m$
1) refine the edges of the shape so no edge is longer than $m$. Let $V$ be the set of all resulting vertices.
2) compute the Delauney triangulation $T$ of $V$
3) add to $V$ vertices that are the centroids of the triangles in $T$ that have edges longer than $m$.
4) update the Delauney triangulation $T$ of $V$. If $T$ has triangles with edges longer than $m$, go to step 3).
5) Optionally smooth the distribution of vertices by computing each interior vertex to be the average of its neighbors.
For more details see Sections 5 and 6 of Filling Holes in Meshes and the references there.
add a comment |
up vote
2
down vote
The devil is in the details, but the backbone of the algorithm would be as follows:
Given some desired maximum edge length $m$
1) refine the edges of the shape so no edge is longer than $m$. Let $V$ be the set of all resulting vertices.
2) compute the Delauney triangulation $T$ of $V$
3) add to $V$ vertices that are the centroids of the triangles in $T$ that have edges longer than $m$.
4) update the Delauney triangulation $T$ of $V$. If $T$ has triangles with edges longer than $m$, go to step 3).
5) Optionally smooth the distribution of vertices by computing each interior vertex to be the average of its neighbors.
For more details see Sections 5 and 6 of Filling Holes in Meshes and the references there.
add a comment |
up vote
2
down vote
up vote
2
down vote
The devil is in the details, but the backbone of the algorithm would be as follows:
Given some desired maximum edge length $m$
1) refine the edges of the shape so no edge is longer than $m$. Let $V$ be the set of all resulting vertices.
2) compute the Delauney triangulation $T$ of $V$
3) add to $V$ vertices that are the centroids of the triangles in $T$ that have edges longer than $m$.
4) update the Delauney triangulation $T$ of $V$. If $T$ has triangles with edges longer than $m$, go to step 3).
5) Optionally smooth the distribution of vertices by computing each interior vertex to be the average of its neighbors.
For more details see Sections 5 and 6 of Filling Holes in Meshes and the references there.
The devil is in the details, but the backbone of the algorithm would be as follows:
Given some desired maximum edge length $m$
1) refine the edges of the shape so no edge is longer than $m$. Let $V$ be the set of all resulting vertices.
2) compute the Delauney triangulation $T$ of $V$
3) add to $V$ vertices that are the centroids of the triangles in $T$ that have edges longer than $m$.
4) update the Delauney triangulation $T$ of $V$. If $T$ has triangles with edges longer than $m$, go to step 3).
5) Optionally smooth the distribution of vertices by computing each interior vertex to be the average of its neighbors.
For more details see Sections 5 and 6 of Filling Holes in Meshes and the references there.
answered yesterday
brainjam
372214
372214
add a comment |
add a comment |
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%2fmath.stackexchange.com%2fquestions%2f3005002%2fhow-can-i-create-an-evenly-distributed-mesh-from-a-shape%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