Ik heb twee coördinaten x1,y1 en x2,y2 waartussen ik een lijn wil tekenen, maar dan afhankelijk van de afstand met een meer of mindere curve. Dat lukt bijna. Hieronder twee voorbeelden van de werkende curves en de falende.


Tussen de blauwe punten is op de curve ook een rode stip te zien. De lijn loopt dus van punt 1 naar punt 2 via de rode stip.
Een collega kwam met de volgende formule die is gebruikt om tot de rode stip te komen (en dus de curve):
Echter schiet de curve in sommige gevallen door.
Het idee achter de formule is om de twee punten als onderdelen van een cirkel te zien om vervolgens te achterhalen waar het punt op de cirkel zou liggen (rode stip) tussen de twee bekende punten (blauwe stippen).
Iemand een idee waar het nu fout gaat en hoe het op te lossen?


Tussen de blauwe punten is op de curve ook een rode stip te zien. De lijn loopt dus van punt 1 naar punt 2 via de rode stip.
Een collega kwam met de volgende formule die is gebruikt om tot de rode stip te komen (en dus de curve):
code:
1
2
3
4
5
6
| dx = x2 - x1 dy = y2 - y1 dr = sqrt(dx * dx + dy * dy) viaX = 0.5 * (x1 + x2) + sqrt(3) * 0.1 * dr; viaY = 0.5 * (y1 + y2) + sqrt(3) * 0.1 * dr * -1 * (dx/dy) |
Echter schiet de curve in sommige gevallen door.
Het idee achter de formule is om de twee punten als onderdelen van een cirkel te zien om vervolgens te achterhalen waar het punt op de cirkel zou liggen (rode stip) tussen de twee bekende punten (blauwe stippen).
Iemand een idee waar het nu fout gaat en hoe het op te lossen?
Sinds de 2 dagen regel reageer ik hier niet meer