<p>I ended up using the LOS-Dijkstra algorithm for &quot;near-isometric flattening of brain surfaces&quot; described <a href="https://www.sciencedirect.com/science/article/pii/S1053811910001564" rel="nofollow noreferrer">here</a>. The code is available in <a href="https://github.com/kalenkovich/waves" rel="nofollow noreferrer">this</a> repository but:</p>
<ol>
<li>It is mixed with a lot of irrelevant code.</li>
<li>It is poorly commented.</li>
<li>It is in Matlab.</li>
</ol>
<p>If someone stumbles onto this question in the future and would to use the code, I would be happy to help fix the issues above.</p>

CC BY-SA 4.0
2021-10-12T11:00:09.873Z
2021-10-12T11:00:09.873Z
Zhenya K.
<p>I have a 3D triangular mesh representing cortical surface of a brain. I also have one vertex of interest. I would like to unfold a neighborhood of this vertex in such a way that both the angles (their ratios) and distances of paths from this vertex are preserved as much as possible.</p>

<p>I read some reviews on mesh parameterization techniques (eg. <a href="http://people.eecs.berkeley.edu/~jrs/meshpapers/ShefferPraunRose.pdf" rel="nofollow noreferrer">this</a> one by Scheffer et al.). My understanding is that all the algorithms try to preserve a certain property (angle, distance, area) or a combination of those properties for all of the vertices or faces. In my case I need to preserve angles and distance of paths going from only one point. My intuition tells me that what I need should be quite simple because I demand much less from the output than all those parameterization algorithms. Yet I cannot come up with the solution. Any help is greatly appreciated.</p>

CC BY-SA 3.0
2017-02-13T16:42:38.533Z
Are you looking to preserve the *ratio* between angles, to keep things in proportion, or to preserve the exact angle values? In general the angles cannot be preserved as angles around a point do not necessarily add up to 360 degrees in a non-planar surface.
trichoplax is on Codidact now
CC BY-SA 3.0
2017-02-13T17:13:07.877Z
The ratio. I will edit the post. Thank you for pointing this out.
Zhenya K.
CC BY-SA 3.0
2017-02-13T22:20:27.567Z
@trichoplax Angles around a point do add up to 360° as long as the surface is smooth (a small patch around the point looks like a plane). You might be thinking of the angles inside a polygon? For instance, the interior angles of a triangle don't add up to 180° on a curved surface in general.
Nathan Reed
CC BY-SA 3.0
2017-02-14T14:45:05.090Z
Please see Nathan's comment which explains my misunderstanding (thanks Nathan - that is indeed what I was confusing it with)
trichoplax is on Codidact now
CC BY-SA 3.0
2017-02-14T16:09:47.237Z
@NathanReed I'm doubting myself now, but I think my error was in terminology (talking about surface instead of mesh), and that the intended point stands. Although the smooth surface that is being approximated by a triangle mesh is locally planar, the mesh itself, as a polyhedron, does not have angles around each vertex that sum to 360°. So an angle preserving projection can be made from a surface to a plane, but the angles are dependent on which surface was chosen to fit to the vertices of the mesh prior to projection (unless the original surface is known). Is this relevant here?
trichoplax is on Codidact now
CC BY-SA 3.0
2017-02-15T14:12:25.827Z
For meshes angles do not add up to 360°.
Zhenya K.
<mesh><uv-mapping>
Algorithm to map a triangular mesh onto plane preserving angles and distances from one vertex
Zhenya K.
# Algorithm to map a triangular mesh onto plane preserving angles and distances from one vertex

(Asked by: username_0 on 2017-02-11)

I have a 3D triangular mesh representing cortical surface of a brain. I also have one vertex of interest. I would like to unfold a neighborhood of this vertex in such a way that both the angles (their ratios) and distances of paths from this vertex are preserved as much as possible.

I read some reviews on mesh parameterization techniques (eg. [this](http://people.eecs.berkeley.edu/~jrs/meshpapers/ShefferPraunRose.pdf) one by Scheffer et al.). My understanding is that all the algorithms try to preserve a certain property (angle, distance, area) or a combination of those properties for all of the vertices or faces. In my case I need to preserve angles and distance of paths going from only one point. My intuition tells me that what I need should be quite simple because I demand much less from the output than all those parameterization algorithms. Yet I cannot come up with the solution. Any help is greatly appreciated.

**Tags:** mesh, uv-mapping

> **Comments:**
> **username_1**: Are you looking to preserve the *ratio* between angles, to keep things in proportion, or to preserve the exact angle values? In general the angles cannot be preserved as angles around a point do not necessarily add up to 360 degrees in a non-planar surface.  
> **username_0**: The ratio. I will edit the post. Thank you for pointing this out.  
> **username_2**: @username_1 Angles around a point do add up to 360° as long as the surface is smooth (a small patch around the point looks like a plane). You might be thinking of the angles inside a polygon? For instance, the interior angles of a triangle don't add up to 180° on a curved surface in general.  
> **username_1**: Please see username_2's comment which explains my misunderstanding (thanks username_2 - that is indeed what I was confusing it with)  
> **username_1**: @username_2 I'm doubting myself now, but I think my error was in terminology (talking about surface instead of mesh), and that the intended point stands. Although the smooth surface that is being approximated by a triangle mesh is locally planar, the mesh itself, as a polyhedron, does not have angles around each vertex that sum to 360°. So an angle preserving projection can be made from a surface to a plane, but the angles are dependent on which surface was chosen to fit to the vertices of the mesh prior to projection (unless the original surface is known). Is this relevant here?  
> **username_0**: For meshes angles do not add up to 360°.  

---

## 1 answers

### Answer by username_0 on 2021-10-12. Score: 1

I ended up using the LOS-Dijkstra algorithm for "near-isometric flattening of brain surfaces" described [here](https://www.sciencedirect.com/science/article/pii/S1053811910001564). The code is available in [this](https://github.com/kalenkovich/waves) repository but:

1. It is mixed with a lot of irrelevant code.
2. It is poorly commented.
3. It is in Matlab.

If someone stumbles onto this question in the future and would to use the code, I would be happy to help fix the issues above.


---

