Trouver la distance entre deux cercles
Je suis à essayer de comprendre comment obtenir la distance entre deux cercles par rapport aux quatre coins de leur place conteneur des boîtes. J'ai besoin d'un peu d'aide avec les maths ici.
Comment puis-je déterminer le nombre de pixels de la ligne marquée d'un point d'interrogation?
Apprécier à l'aide, comme toujours.
- ce que dow cela a à voir avec la programmation? devrait être déplacé vers la math.stackexchange.com
- BTW c'est tout pour une application Flash, je travaille sur.
- Je n'arrive toujours pas à voir la pertinence en termes de programmation. Cependant, SI vous demandez à un algorithme, puis il s'insère ici.
- C'est des conseils pour la mise en œuvre. C'est pas un débat sur les maths, c'est un problème de programmation que j'ai.
- Nous utilisons les mathématiques dans la programmation, s'il attendait une réponse d'un mathématicien, et pas un programmeur. Alors oui, il/elle risque de choisi le mauvais endroit. Mais rien de mal à demander au sujet de la programmation de mathématiques sur un forum de programmation. Si non, alors je vous suggère de dire hors de tous ces vilains gens parler de la base de 2 opérations mathématiques, parce qu'il n'a évidemment aucune pertinence à la programmation.
Vous devez vous connecter pour publier un commentaire.
tldr: Calculer la distance entre les cercles de centre, puis soustraire le rayon de chaque cercle de que.
Pour les besoins d'une démonstration, nous supposons que les suivantes:
r1 = 100
) le cercle est à l' (x, y) les coordonnées de(0, 0)
, etr2 = 50
) le cercle est à la position (x, y) les coordonnées de(150, -150)
.Étant donné que la distance entre leurs centres est:
Pour trouver la distance entre leurs limites, nous soustrayons la rayon de chaque cercle de la distance entre leurs centres.
Ce qui nous laisse avec l'équation:
L'insertion de valeurs dans le ci-dessus donne:
Avez-vous le point milieu de chaque rond? Si vous le faites, il faut d'abord calculer la distance entre le centre des cercles.
distance2 = center12 + center22
Ensuite, vous aurez besoin de moins le rayon des deux cercles. Dans votre cas, il sera de 150 (100 + 50)
Voyons voir... chaque rayon est la moitié de chaque côté de la longueur, puis en soustrayant la somme des rayons de la distance entre le centre vous donne le montant qui reste.
Espère que ça aide?
La algébriquement version simplifiée de Daniel réponse est
où r1,r2 sont les deux rayons et s1,s2 sont deux carrés de côtés. Ceci est facilement visible à chaque carré individuellement et de s'apercevoir que la distance d1 du cercle/carré de centre à la place de coin est sqrt(2) * r, et la distance souhaitée à l'intérieur de ce carré est d1 - le cercle de rayon r.