<p>I'm not sure what you mean by join together the shapes. I assume you mean you want a single torus but at different spots on the torus you want one of either geometry to shine through more. Assuming that parametrisation of the Torus is approximately the same (same <span class="math-container">$(u,v)$</span> values map to points close together). Then you could try the following:</p>
<p>Assuming both cylinders have some parametrisation <span class="math-container">$R^2 \rightarrow R^3$</span> with <span class="math-container">$(u,v) \in [0,1]$</span>. We then have two tori: <span class="math-container">$T_1(u,v)$</span> and <span class="math-container">$T_2(u,v)$</span>. Then we can combine these together with additional blending functions <span class="math-container">$\alpha(u,v)$</span> and <span class="math-container">$\beta(u,v)$</span> which have the following properties: <span class="math-container">$\alpha(u,v)$</span> + <span class="math-container">$\beta(u,v) = 1$</span> and <span class="math-container">$\alpha(u,v)$</span>, <span class="math-container">$\beta(u,v)  \in [0,1]$</span>. Then we can create a blended torus:</p>
<p><span class="math-container">$$T_b(u,v) = \alpha(u,v) T_1(u,v) + \beta(u,v) T_1(u,v). $$</span></p>
<p>Naturally, the question is what are these functions <span class="math-container">$\alpha$</span> and <span class="math-container">$\beta$</span> and that is what you have to decide yourself. If you do not really care about where exactly the blend is done you can set <span class="math-container">$\alpha$</span> to be determined by a Perlin noise function and then setting <span class="math-container">$\beta = 1 - \alpha$</span>. If you require more customization you could try to create a custom height map or create a grid of Bezier patches on the UV plane. Having half of the torus as <span class="math-container">$T_1$</span> and the other as <span class="math-container">$T_2$</span> you could use just <span class="math-container">$$\alpha(u,v) =
\begin{cases}
1-2u, &amp; u \in [0, 0.5]\\
2u - 1, &amp; u \in [0.5, 1]\\
\end{cases}
$$</span> and once again <span class="math-container">$\beta(u,v) = 1 - \alpha(u,v)$</span> (assuming they are both parametrised with <span class="math-container">$u$</span> along the toroidal direction). You can create smoother blends by using smoother blending functions.</p>

CC BY-SA 4.0
2023-10-11T21:13:28.883Z
This answer is not addressing the question.

I don't want different geometry to shine differently. If you see the image in the question, the macro geometry of all 6 tori is different. The question is, if you split them in half and rejoin them, e.g. such that the top left and bottom right are now joined together. How do you blend them together so that the transition from one to the other at the stitch point is smooth.

Transition in this case means the actual macro geometry, the corskcrew-like lines made by rotating and sweeping the planar curve.
Makogan
CC BY-SA 4.0
2023-10-11T21:14:35.630Z
I am also using torus as an example, but in general this is about triangle meshes, you do not have an explicit parametrization.
Makogan
CC BY-SA 4.0
2024-03-09T10:47:21.987Z
Use a plane and a lerp value .
pmw1234
CC BY-SA 4.0
2023-10-11T08:17:00.973Z
2023-10-11T08:17:00.973Z
Reynolds
<p>Say you have 2 parametric cylinders represented as triangle meshes with very different geometries and you connect them together.</p>
<p>Is there a method that allows you to join them together such that the shapes blend smoothly?</p>
<p>So for example consider these geometries:</p>
<p><a href="https://i.sstatic.net/LjN8p.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/LjN8p.jpg" alt="enter image description here" /></a></p>
<p>let's say you have a cylinder with the geometry of the top left torus and one with that of the bottom right torus. You want to attach them together to get a new cylinder such that that half the cylinder is a normal cylinder, half is a corkscrew cylinder and you have a  smooth transition of the geometry from one to the other in the middle.</p>
<p>I am trying to find literature on the topic but I am having little luck.</p>

<mathematics><computational-geometry><algorithm><geometry>
Extrapolating geometry across a triangle mesh?
Makogan
# Extrapolating geometry across a triangle mesh?

(Asked by: username_0 on 2023-10-11)

Say you have 2 parametric cylinders represented as triangle meshes with very different geometries and you connect them together.

Is there a method that allows you to join them together such that the shapes blend smoothly?

So for example consider these geometries:

[![enter image description here](https://i.sstatic.net/LjN8p.jpg)](https://i.sstatic.net/LjN8p.jpg)

let's say you have a cylinder with the geometry of the top left torus and one with that of the bottom right torus. You want to attach them together to get a new cylinder such that that half the cylinder is a normal cylinder, half is a corkscrew cylinder and you have a smooth transition of the geometry from one to the other in the middle.

I am trying to find literature on the topic but I am having little luck.

**Tags:** mathematics, computational-geometry, algorithm, geometry


---

## 1 answers

### Answer by username_1 on 2023-10-11. Score: 0

I'm not sure what you mean by join together the shapes. I assume you mean you want a single torus but at different spots on the torus you want one of either geometry to shine through more. Assuming that parametrisation of the Torus is approximately the same (same $(u,v)$ values map to points close together). Then you could try the following:

Assuming both cylinders have some parametrisation $R^2 \rightarrow R^3$ with $(u,v) \in [0,1]$. We then have two tori: $T\_1(u,v)$ and $T\_2(u,v)$. Then we can combine these together with additional blending functions $\alpha(u,v)$ and $\beta(u,v)$ which have the following properties: $\alpha(u,v)$ + $\beta(u,v) = 1$ and $\alpha(u,v)$, $\beta(u,v) \in [0,1]$. Then we can create a blended torus:

$$T\_b(u,v) = \alpha(u,v) T\_1(u,v) + \beta(u,v) T\_1(u,v). $$

Naturally, the question is what are these functions $\alpha$ and $\beta$ and that is what you have to decide yourself. If you do not really care about where exactly the blend is done you can set $\alpha$ to be determined by a Perlin noise function and then setting $\beta = 1 - \alpha$. If you require more customization you could try to create a custom height map or create a grid of Bezier patches on the UV plane. Having half of the torus as $T\_1$ and the other as $T\_2$ you could use just $$\alpha(u,v) =
\begin{cases}
1-2u, & u \in [0, 0.5]\\
2u - 1, & u \in [0.5, 1]\\
\end{cases}
$$ and once again $\beta(u,v) = 1 - \alpha(u,v)$ (assuming they are both parametrised with $u$ along the toroidal direction). You can create smoother blends by using smoother blending functions.

> **Comments:**
> **username_0**: This answer is not addressing the question.  I don't want different geometry to shine differently. If you see the image in the question, the macro geometry of all 6 tori is different. The question is, if you split them in half and rejoin them, e.g. such that the top left and bottom right are now joined together. How do you blend them together so that the transition from one to the other at the stitch point is smooth.  Transition in this case means the actual macro geometry, the corskcrew-like lines made by rotating and sweeping the planar curve.  
> **username_0**: I am also using torus as an example, but in general this is about triangle meshes, you do not have an explicit parametrization.  
> **username_2**: Use a plane and a lerp value .  

---

