Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
 Vypočítajte vzdialenosť medzi hrotmi kruhov " : 
 
 bod delta = p2 - p1 ; float distanceSquared = delta.X * delta.X + delta.Y * delta.Y ; float vzdialenosť = sqrt ( distanceSquared ) ; 
 2 
 príchodu v prípade , že kruhy sú úplne oddelené od seba navzájom . V tomto prípade sa vzdialenosť medzi stredmi kružníc byť väčšia než súčet ich polomerov , takže neexistuje žiadny spôsob , ako sa môžu pretínať . Ak je to váš prípad , chybu spracovať akýmkoľvek spôsobom funguje najlepšie pre váš program 
 
 if ( distSquared > ( r1 + r2 ) * ( r1 + r2 ) ) return noIntersections ; . 
 sims 3 
 Skontrolujte , či jeden kruh je úplne v rámci druhej . V tomto prípade , bude existovať tiež žiadne riešenie 
 
 if ( distSquared < ( r1 - r2 ) * ( r1 - r2 ) ) return noInersections ; . 
 4 
 Skontrolujte , či kruhy sú identické . To znamená , že existuje nekonečný počet riešení - jeden pre každý bod na kružnici 
 
 if ( distSquared == 0 && r1 == r2 ) return infiniteIntersections ; . 
 
 Nájsť Križovatky 
 5 
 Vypočítajte vzdialenosť od stredu prvého kruhu akordu spájajúcej priesečníky 
 
 plávať chordDistanceSquared = ( r1 * R1 - . r2 * r2 - distSquared ) * ( * r1 r1 - r2 * r2 - distSquared ) /( 4 * distSquared ) , plavák chordDistance = sqrt ( chordDistanceSquared ) ; 
 6 
 Spočítať polovica dĺžky tetivy : 
 
 plávať halfChordLength = sqrt ( r1 * r1 - chordDistanceSquared ) ; 
 7 
 Nájdite bod , v strede akordu : 
 
 Point chordMidpoint = p1 + chordDistance * delta /sqrt ( distSquared ) ; 
 8 
 Vypočítajte umiestnenie priesečníkoch s využitím informácií , ktoré ste vypočítané tak ďaleko : 
 
 Intersection1.x = chordMidpoint.x + chordDistance * ( p2.y - p1.y ) /vzdialenosť ; Intersection1.y = chordMidpoint.y + chordDistance * ( p2.x - p1.x ) /vzdialenosť ; Intersection2.x = chordMidpoint.x - chordDistance * ( p2.y - p1 . y ) /vzdialenosť ; Intersection2.y = chordMidpoint.y - chordDistance * ( p2.x - p1.x ) /vzdialenosť ;