Allegro Problem



  • Wollte bloß mal fragen, was mein denk Fehler im folgenden code ist:
    C++:
    double gk, ak;

    if ((mouse_x<sprite_x)&&(mouse_y<sprite_y))
    {
    ak=sprite_x-mouse_x;
    gk=sprite_y-mouse_y;
    }
    if ((mouse_x>sprite_x)&&(mouse_y>sprite_y))
    {
    ak=mouse_x-sprite_x;
    gk=mouse_y-sprite_y;
    }
    if ((mouse_x<sprite_x)&&(mouse_y>sprite_y))
    {
    ak=sprite_x-mouse_x;
    gk=mouse_y-sprite_y;
    }
    if ((mouse_x>sprite_x)&&(mouse_y<sprite_y))
    {
    ak=mouse_x-sprite_x;
    gk=sprite_y-mouse_y;
    }

    double f;
    double alpha;
    f=gk/ak;

    alpha= atan(f);
    alpha=alpha*180/3.1415926535;

    textprintf(buffer, font, 0, 100, makecol(255,155,155), "Winkel %i",alpha);

    für den Winkel kommt immer irgend eine hohe Zahlen raus(manchmal sogar negativ)
    thx for help.[cpp]



  • Du solltest vielleicht erklären, was du genau tun willst und deinen Variablen selbsterklärende Namen geben, damit man als Aussenstehender die Mathematik dahinter verstehen kann; die Anwendung des atan und die Umwandlung der Winkel in von Radians in Degrees erfolgt korrekt, aber was genau du tun willst und warum du es so machst ist aus den gegebenen Informationen für einen Menschen, der gerade aufgestanden ist, nicht ersichtlich 😃

    MfG



  • Und codetags verwenden waer auch 'ne klasse Idee 🙂 :xmas1:



  • Eventuell wäre atan2(gk,ak) das richtige.


Anmelden zum Antworten