Vorausgesetzt, dass Sie beschreiben nicht die Eigenschaften der Kurven in genug Details, ist es schwer, mit einem bestimmten/angegebenen algo kommen, aber lassen Sie sich einen beschreibenden Ansatz versuchen:
einen Kreis der gegebenen nehmen Radius und rollen Sie es auf einer Kurve, bis der Kreis den anderen berührt.
Ich nehme an, Sie können Kurven parametrieren.
Um den Kreis entlang der Kurve zu "rollen", benötigen Sie die Tangente (oder besser gesagt die Normale, die natürlich senkrecht zur Tangente ist) im Punkt "Rollbahnkurve" - zum Kreistangentenpunkt. Sie haben dies normal, Sie kennen den Radius, Sie können Ihren Kreis berechnen. Sie haben den Kreis, Sie können sehen, ob/wo es die andere Kurve schneidet.
Die Idee des "Rollens" besteht darin, Ihre Lösung (Parameter des Tangentialpunkts auf einer Kurve) zwischen einem Punkt, an dem der Kreis die andere Kurve nicht schneidet, und einem anderen Punkt, an dem er sich schneidet, einzukreisen (möglich in mehr als 1 Punkt). Sobald Sie die Klammer haben, gehen Sie mit einer bisection method (binäre Suche) zwischen den zwei Positionen, bis Ihr Kreis "Tangente genug" zu der anderen Kurve wird (dh die Schnittpunkte mit der anderen Kurve sind so nahe, dass sie unter Ihre akzeptable Epsilon fallen).
Sie haben jetzt zwei Punkte (einen auf jeder Kurve) und den Kreis, der die Lösung realisiert: Halten Sie den Bogen auf diesem Kreis entsprechend, was sinnvoll ist (basierend auf der Konvergenz oder Divergenz der beiden Tangenten).
Sie haben Recht, es ist nicht einfach, aber es ist wirklich ein Programmierproblem? –
Sorry, ich bin mir nicht sicher, wie ich dieses Problem klassifizieren soll, aber ich möchte diese Funktion wirklich durch Programmieren realisieren. – user1446072
Sie müssen zuerst eine Formel/Gleichung aufstellen, dann ist es ein Programmierproblem. Aber das Ableiten der Gleichung ist reine Mathematik. –