[Visual c++ 2005] funkcja kwadratowa 3144 2

O temacie

Autor Wowoz

Zaczęty 9.10.2013 roku

Wyświetleń 3144

Odpowiedzi 2

Wowoz

Wowoz

Użytkownicy
Wowoźny
posty3698
Propsy4862
NagrodyVV
Profesjabrak
  • Użytkownicy
  • Wowoźny
Jest jakis ogarniacz tego programu? Problem z tym, ze w szkole mamy wersje 2005 i nie ma biblioteki chart : |.
O ile wyliczyć delte, x1,x2, wypisać do richtextboxa jestem w stanie zrobić, to już za narysowanie wykresu nie wiem jak się wziąć. Mógłby mi ktoś pomóc?
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Zmień na 2012, lepszy interfejs i w ogóle :P

Masz kod rysowanie funkcji, jedna to f(x) = |x|, druga jakaś kwadratowa :D
/*
 *
 * Tworzenie okna aplikacji
 *
 */
#include <windows.h>

/* Deklaracja wyprzedzająca: funkcja obsługi okna */
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
/* Nazwa klasy okna */
char szClassName[] = "PRZYKŁAD";

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nShowCmd)
{
   HWND hwnd;               /* Uchwyt okna */
   MSG messages;            /* Komunikaty okna */
   WNDCLASSEX wincl;        /* Struktura klasy okna */

   /* Klasa okna */
   wincl.hInstance     = hInstance;
   wincl.lpszClassName = szClassName;
   wincl.lpfnWndProc   = WindowProcedure;    // wskaźnik na funkcję
                                             // obsługi okna 
   wincl.style         = CS_DBLCLKS;                 
   wincl.cbSize        = sizeof(WNDCLASSEX);

   /* Domyœlna ikona i wskaźnik myszy */
   wincl.hIcon   = LoadIcon(NULL, IDI_APPLICATION);
   wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
   wincl.hCursor = LoadCursor(NULL, IDC_ARROW);
   wincl.lpszMenuName = NULL;
   wincl.cbClsExtra = 0;   
   wincl.cbWndExtra = 0;   
   /* Jasnoszare tło */
   wincl.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH);

   /* Rejestruj klasę okna */
   if(!RegisterClassEx(&wincl)) return 0;

   /* Twórz okno */
   hwnd = CreateWindowEx(
          0, szClassName,         
          "Przykład",       
          WS_OVERLAPPEDWINDOW,
          CW_USEDEFAULT, CW_USEDEFAULT,       
          512, 512,                 
          HWND_DESKTOP, NULL,               
          hInstance, NULL );

   ShowWindow(hwnd, nShowCmd);

   
   /* Pętla obsługi komunikatów */
   while(GetMessage(&messages, NULL, 0, 0))
   {
      /* Tłumacz kody rozszerzone */
      TranslateMessage(&messages);
      /* Obsłuż komunikat */
      DispatchMessage(&messages);
   }

   /* Zwróć parametr podany w PostQuitMessage( ) */
   return messages.wParam;
}

int xSize, ySize;

/* Tę funkcję woła DispatchMessage( ) */
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message,
                                 WPARAM wParam, LPARAM lParam)
{
   HDC hdc; // kontekst urządzenia
   int i;
   PAINTSTRUCT ps;
   RECT r;
   HPEN hPen, hPen2, hPen3;

   switch (message)
   {
      case WM_DESTROY:
         PostQuitMessage(0);
      break;

      case WM_SIZE:
         xSize = LOWORD(lParam);
         ySize = HIWORD(lParam);
         GetClientRect(hwnd, &r);
         InvalidateRect(hwnd, &r, 1);
      break;
     
      case WM_PAINT:
         hdc = BeginPaint (hwnd, &ps);

         hPen3 = CreatePen (PS_SOLID, 3, RGB (0, 0, 0));
         SelectObject(hdc, hPen3);

         MoveToEx(hdc, xSize/2, 0, NULL);

         for (i=0; i<xSize; i++)
            LineTo(hdc, xSize/2, i);

         MoveToEx(hdc, 0, ySize/2, NULL);

         for (i=0; i<xSize; i++)
            LineTo(hdc, i, ySize/2);

         DeleteObject(hPen3);

         hPen = CreatePen (PS_SOLID, 3, RGB (255, 0, 0));
         SelectObject(hdc, hPen);

         MoveToEx(hdc, 0, 0, NULL);

         for (i=-xSize/2; i<xSize/2; i++)
            LineTo(hdc, i+xSize/2, -abs(i)+ySize/2);

         DeleteObject(hPen);

         hPen2 = CreatePen (PS_DASH, 1, RGB (0, 0, 255));
         SelectObject(hdc, hPen2);

         MoveToEx(hdc, 0, 0, NULL);

         for (i=-xSize/2; i<xSize/2; i+=10)
            LineTo(hdc, i+xSize/2, ySize/2-i*i);

         DeleteObject(hPen2);

         EndPaint(hwnd, &ps);
      break;
      default:
         return DefWindowProc(hwnd, message, wParam, lParam);
   }
   
   return 0;
}

mgr Fartuess

mgr Fartuess

Użytkownicy
Kiedyś to były czasy!
posty1485
Propsy890
ProfesjaProgramista
  • Użytkownicy
  • Kiedyś to były czasy!
Ja też w domu śmigam na VS2012 :D
 
Popisuje się ciągle menda jedna...


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry