| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> C /C + + Programming >> Content
    Come calcolare cerchi che si intersecano in C + +
    Calcolo dei punti di intersezione dei due cerchi è un problema un po 'complicato in geometria , ma la soluzione è semplice e semplice da implementare in C + + . Avrete bisogno di un qualche tipo di classe point a disposizione in grado di gestire operazioni aritmetiche di base , come l'addizione e la sottrazione di punti 2 -dimensionali . Se non ne avete uno , potete usare un std :: vector della Standard Template Library nello stesso modo . Cose che ti serviranno
    classe Point che gestisce l'aritmetica di base
    Mostra più istruzioni Appartamenti Controlla in casi particolari
    1

    Calcola la distanza tra i centri dei cerchi : < br

    Point > delta = p2 - p1 ; float distanceSquared = delta.X * delta.X + delta.Y * delta.Y ; distanza float = sqrt ( distanceSquared ) ;
    2

    Arrivo se i cerchi sono completamente separati gli uni dagli altri . In questo caso , la distanza tra i centri dei cerchi sarà maggiore della somma dei loro raggi , quindi non c'è modo possono intersecarsi . Se questo è il caso , gestire l'errore nel modo che funziona meglio per il vostro programma

    se ( distSquared > ( R1 + R2 ) * ( R1 + R2 ) ) noIntersections ritorno; .

    3

    Verificare se un cerchio è completamente dentro l'altro . In questo caso , ci saranno anche presenti soluzioni

    se ( distSquared < ( r1 - r2 ) * ( r1 - r2 ) ) noInersections ritorno; .
    4

    Verifica se la cerchi sono identici . Questo significa che ci sono un numero infinito di soluzioni - uno per ogni punto del cerchio

    se ( distSquared == 0 && r1 == r2 ) infiniteIntersections ritorno; .
    < . br> Trova le intersezioni
    5

    Calcola la distanza dal centro del primo cerchio alla corda che collega i punti di intersezione

    float chordDistanceSquared = ( r1 * r1 - r2 * r2 - distSquared ) * ( r1 * r1 - r2 * r2 - distSquared ) /( 4 * distSquared ) ; float chordDistance = sqrt ( chordDistanceSquared ) ;
    6

    Calcolare la metà della lunghezza della corda :

    float halfChordLength = sqrt ( r1 * r1 - chordDistanceSquared ) ;
    7

    Trova il punto al centro della corda :

    Point chordMidpoint = p1 + chordDistance * delta /sqrt ( distSquared ) ;
    8

    calcolare la posizione dei punti di intersezione con le informazioni che hai calcolato finora:

    Intersection1.x = chordMidpoint.x + chordDistance * ( p2.y - p1.y ) /distanza ; Intersection1.y = chordMidpoint.y + chordDistance * ( p2.x - p1.x ) /distanza ; Intersection2.x = chordMidpoint.x - chordDistance * ( p2.y - p1 . y) /distanza ; Intersection2.y = chordMidpoint.y - chordDistance * ( p2.x - p1.x ) /distanza ;

    Previous :

    next :
      Articoli Correlati
    ·Come collegare Debugger in C # 
    ·Base SDK mancante xCode 
    ·Come prendere puntatori a interi in C + + 
    ·Come utilizzare i puntatori void in C 
    ·Come rimuovere Microsoft Visual C + + Messaggi 
    ·Come scrivere una classe Queue in C + + 
    ·Quali sono i quattro diversi tipi di relazione di eredi…
    ·Aggiunta di un nodo di TreeView 
    ·Come cambiare la mia password 
    ·C + + Fibonacci Numero Funzione 
      Articoli in evidenza
    ·Come fare un progetto Web in Eclipse lavoro tramite bro…
    ·Come posso aprire un file EPR in Home 
    ·Come creare Web Immagini del sito 
    ·Come mappare una Servlet All'interno di un Servlet 
    ·Usi di Acrobat in VB 
    ·Come ordinare utilizzando la casella a discesa 
    ·Che cosa sono Terminologie Visual Basic 
    ·Come installare MySQL su Cygwin 
    ·Come convertire un set di risultati su Delimitato da vi…
    ·Che cosa è il debug di script utilizzato per ? 
    Copyright © Conoscenza Informatica http://it.wingwit.com