I am agree that question could appear as pure math one but there is GN solution:
Edit:
So this approach is more physical than mathematical.

At first you must find the location of the point of touch on the sin curve. A Sample Curve
and a Compare
node will give you the index of this point. This Sample Curve
will give the Position of all the points you just have to select the right one with a Attribute Statistic
within the right selection (the output of the Compare
node). With another Attribute Statistic
you extract the Tangent at this point.

Now its time for the other curve. With a Sample Curve
and Compare
node you will select the index of the point witch have the same tangent as the other point on the other curve. An Attribute Statistic
will give the position of this point. Then you just have to subtract this value of a Position
node and plug the out put in the Position input of a Set Position
that will displace the curve in the way that this point is now the “origin” of the curve, then in the Offset input used the Set Position
extracted from the first Attribute Statistic
node will displace it accordingly to the point you choose on the first curve.

\Edit:
The advantage of this method is that it will work for more than one type of curve (not everyone). But you will have to have a curve with a lot of point if not that jump.
For this specific question I do prefer the cleaner and simpler mathematical one.
Thanks Robin Betts.
