Koordinaten berechnen



  • Hi zusammen 😉 ,

    Also ich habe die Funktion f(x)
    Jetzt setzte ich in diese Funktion Werte ein (for-Schleife), welche anschließend in ein Koordianten System gezeichnet werden sollen... mein Problem ist das ich nicht weiß wie ich die Punkte umrechnen soll...

    PS das Koordinatensystem ist über die GDI gezeichnet (also n paar mal LineTo und MoveToEx ...)

    danke!



  • Mit SetWindowOrgEx kannst du einen Punkt als Ursprung angeben, sodass du die Punkte nicht mehr umzurechnen brauchst.



  • hmm ok danke erstmal für die hilfe...aber irgend wie funktioniert das hier nicht:

    // unter WM_PAINT
    // hdcBackBuffer ist der gültige Zeichenkontext
    // iXGraphField ist die horizontale Größe des Graphen
    // iYGraphField ist die vertikale Größe des Graphen
    // ptPrevOrg soll den ursprünglichen Koordinatenbasispunkt speichern
        SetWindowOrgEx(hdcBackBuffer, iXGraphField / 2, iYGraphField / 2, &ptPrevOrg);
    
        MoveToEx(hdcBackBuffer, 0, 0, NULL);
        LineTo(hdcBackBuffer, 10, 10); // Linie von der Mitte (0,0) bis (10,10)
    
        SetWindowOrgEx(hdcBackBuffer, ptPrevOrg.x, ptPrevOrg.y, NULL); // zurücksetzen
    

    vll. findeste ja den Fehler...und nochmals vielen dank! 😉

    PS: er zeichnet einfach nix^^ 🙄



  • Servas!!!

    Weiss nicht was genau du mit f(x) dann erreichen willst,
    aber hier zB. wird zuerst das kartesische Koordinatensystem eingestellt dann der Vektor 100, 100 vom Ursprung gezeichnet!!

    vll hilfts!!

    case WM_PAINT:
    {
    PAINTSTRUCT ps;
    RECT rc;

    HDC hdc = BeginPaint (hWnd, &ps);

    GetClientRect(hWnd, &rc);

    SetMapMode(hdc, MM_LOMETRIC);

    SetViewportOrgEx(hdc, rc.right/2, rc.bottom/2, NULL);

    MoveToEx( hdc, 0, 0, NULL);
    LineTo( hdc, 200, 250 );

    EndPaint( hWnd, &ps);
    break;
    }



  • doch ned 100, 100
    😃



  • funzt, danke, perfekt! 😉


Anmelden zum Antworten