1

I have 2 cylinders in 3d space. Of each cylinder, I know the origin, the diameter and the normal vector (normal to the circle that defines the cylinder).

Now i wrapp a rope from one cylinder to the other. I know the direction of the wrapp on each cylinder and also the height, where the rope touches each cylinder. Here's a picture of what i'm trying to say:

Rope wrapped around 2 cylinders

The rope is allways wrapped perpendicular on the cylinder, so its actually only 2 circles in space.

I dont know how i would calculate that. My approach was first (remember, the cylinders dont have to be on the same plane, nor look in the same direction) to look at the plane of the first circle, and project the other circle on the same plane. Then i can calcualte the tangents of the circle and the projected ellipse. After that, I intersect the plane, that is formed by the tangent and the normal vector of the first circle, with the second circle. This gives me the starting and endpoint of the rope on each cylinder. Here are some pictures of that:

Tangent of circle 1 and projected ellipse of circle 2

Solution of tangent plane intersected with second circle

But the problem with that is, it doesn't work, when the cylinders are 90° degrees to each other because then, the circle gets projected as a line.

First of all, I'm looking for an idea on how to solve that. But if you have some equations, I would also be really happy.

Thanks for your help

David

David
  • 11
  • Have you tried to simulate the path as a collection of piecewise differentiable curves?

    E.g. the rope around the barrel would be represented by a circular equation, while the connections between barrels would be straight line pieces. If your various piecewise functions connect properly, the length should be finite as the path would be an example of a rectifiable curve.

    – Theodor Johnson Apr 09 '19 at 13:06
  • I didn't, but I think, this is ultimately the way to go. But the Problem is, how do I calculate the points where the curve ends and the line starts? – David Apr 09 '19 at 13:26
  • The place where the rope leaves the barrel should be invariant to translations of the barrel. I.e. relative position of a rope with respect to the barrel it's attached to, should not change. You can then connect these exit points with a simple straight line equation (assuming no flex in the rope). You could even try out some cool interpolation techniques. – Theodor Johnson Apr 09 '19 at 13:30
  • I think, I'm to stupid to unterstand you answer. But what do you mean with the exitpoints should be invariant to translation? As far as I understand my problem, I have to find the shortest line wich leaves both circles on a tangential plane. And that depends on the positons of the barrels to each other. – David Apr 09 '19 at 13:58
  • I don't know if I completely understand your question, but you could be interested in this: https://math.stackexchange.com/questions/2706757/a-rubber-band-around-two-cylinders – Intelligenti pauca Apr 09 '19 at 20:04
  • Thank you, I already found that. It is somewhat related, but not exactly the same. I think, i will integrate the approach i mentioned above for angles between -85 to +85 degrees or so. If they are higher, i think an iterative approach, starting with the tangent to the centerpoint of the other circle should work. But i will see. – David Apr 10 '19 at 09:08

1 Answers1

0

Just to explain how I did it in the end:

  1. Create a 2D plane where Cylinder A lays and project it on that.
  2. Project the Center of Cylinder B on that plane. This gives you $P_B$.
  3. Calculate the tangent between Circle A and Point $P_B$. This gives you $P_A$.
  4. Project $P_A$ back to 3D.
  5. Create a 2D plane where Cylinder B lays and project it on that.
  6. Project $P_A$ on that plane.
  7. Calcualte the tangent between Circle B and Point $P_A$. This gives you $P_B'$.
  8. Project $P_B'$ back to 3D

Do that until the residium gets really small

Here's a picture

Notice the picture shows an easy case where this iteration is not need. But that is only because it's easier to draw that way. This algorithm works allways. No matter the orientation of the cylinders to each other.

David
  • 11