Programm zur Überprüfung ob ein Punkt im Kreis liegt oder nicht

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Programm zur Überprüfung ob ein Punkt im Kreis liegt oder nicht

    Hallo,
    Ich muss einn Programm schreiben das prüft ob ein punkt im kreis liegt oder nicht (in C++) aber ich weiß nicht genau wie das gehen soll kann mir jemand mal bischen helfen.
    Hab schon bischen angefangen aber kommme nicht weiter.


    danke in voraus


    Quellcode

    1. # include <iostream>
    2. #include <math.h>
    3. using namespace std;
    4. int main ()
    5. {
    6. float My, Mx, r, Py, Px;
    7. float len;
    8. float x,y;
    9. cout<<"Bitte geben Sie die Koardinate des Kreises ein My"<< endl;
    10. cin>>My;
    11. cout<<"Bitte geben Sie die Koardinate des Kreises ein Mx"<<endl;
    12. cin>>Mx;
    13. cout<<"Bitte geben Sie den radius des Kreises ein r"<<endl;
    14. cin>>r;
    15. cout<<"Bitte geben Sie den Punkt Py der Grade ein"<<endl;
    16. cin>>Py,
    17. cout<<"Bitte geben Sie den Punkt Px der Grade ein"<<endl;
    18. cin>>Px;
    19. len = (Px - Mx, 2);
    20. len = (Py - My, 2);
    21. len = sqrt(x+y);
    22. return 0;
    23. }
    Alles anzeigen


    könntet ihr vlt. das programm berichtigen oder ein bischen verfolständigen.
    Bilder
    • 123.JPG

      102,56 kB, 1.024×768, 2.305 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von pitak ()

  • Wenn es auf der Kreislinie liegen soll kann man auch die Kreisgleichung nehmen (x-xm)²-(y-ym)²=r² ansonsten empfehle ich für mathemathische Probleme aller Art eigentlich immer diese Seite: arndt-bruenner.de/mathe/mathekurse.htm

    Die ist wirklich gut, ich glaub die packe ich nachher mal irgendwo ins Wiki.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • Quellcode

    1. #include <cmath>
    2. r = std::sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))


    Quellcode

    1. (Px-Max,2) == 2
    was wetten :D (Außer du hast operator,(float, int) überladen, natürlich ;) )
    There are only 10 types of people in the world: Those who understand binary, and those who don't.

    Download meines ersten Spiels:HIER
    Über Feedback würde ich mich freuen ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von darthdespotism ()

  • # include <iostream>
    #include <math.h>
    #include <cmath>
    using namespace std;

    int main ()
    {
    float y1, x1, r, y2, x2;
    float len;
    float x,y;

    cout<<"Bitte geben Sie die Koardinate des Kreises ein My"<< endl;
    cin>>y1;
    cout<<"Bitte geben Sie die Koardinate des Kreises ein Mx"<<endl;
    cin>>x1;
    cout<<"Bitte geben Sie den radius des Kreises ein r"<<endl;
    cin>>r;
    cout<<"Bitte geben Sie den Punkt Py der Grade ein"<<endl;
    cin>>y2,
    cout<<"Bitte geben Sie den Punkt Px der Grade ein"<<endl;
    cin>>x2;

    r = std::sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

    len = sqrt (x+y);

    if ((r >= len) && ( r <= len)) {
    cout<<"auf"<<endl;}
    else if (len > r){
    cout<< "inerhalb"<<endl;
    }
    else{
    cout<<"ausserhalb"<<endl;}


    return 0;
    }

    Was kann man noch daran verbessern oder ist das programm so OK?
  • Die Syntax-Tags erleichtern die Lesbarkeit ungemein ;)

    Quellcode

    1. #include <iostream>
    2. #include <cmath> // <math.h> ist die C - Version <cmath> die C++, eine reicht ;)
    3. using namespace std;
    4. int main ()
    5. {
    6. static const float epsilon = 0.0002f; // Float rundungsfehler
    7. float y1, x1, r, y2, x2;
    8. float len;
    9. float x,y;
    10. cout<<"Bitte geben Sie die Koardinate des Kreises ein My"<< endl;
    11. cin>>y1;
    12. cout<<"Bitte geben Sie die Koardinate des Kreises ein Mx"<<endl;
    13. cin>>x1;
    14. cout<<"Bitte geben Sie den radius des Kreises ein r"<<endl;
    15. cin>>r;
    16. cout<<"Bitte geben Sie den Punkt Py der Grade ein"<<endl;
    17. cin>>y2,
    18. cout<<"Bitte geben Sie den Punkt Px der Grade ein"<<endl;
    19. cin>>x2;
    20. len = std::sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
    21. if (abs(r - len) < epsilon) { // Was soll da deine Version bewirken?
    22. cout<<"auf"<<endl;
    23. }
    24. else if (len < r){ // Muss das nicht so rum sein?
    25. cout<< "inerhalb"<<endl;
    26. }
    27. else{
    28. cout<<"ausserhalb"<<endl;
    29. }
    30. }
    Alles anzeigen
    There are only 10 types of people in the world: Those who understand binary, and those who don't.

    Download meines ersten Spiels:HIER
    Über Feedback würde ich mich freuen ;)