Witam!
Mam nadzieję że temat wyjaśnił wszystko, jeżeli coś pominąłem to proszę pytać- teraz rozwinięcie.
Mam stworzyć projekt programu- prawdopodobnie będzie to SDI żeby była możliwość zapisu, drukowania i inne takie bajery- niepotrzebne ale skoro projekt na ocenę to ma być tego jak najwięcej. Mam problem zasadniczy- nie wiem jak się za to zabrać... Na razie skonstruowałem sam układ współrzędnych:
void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
//układ współrzędnych
PaintBox1->Canvas->Pen->Color=clBlack;
PaintBox1->Canvas->MoveTo(Form1->Width/2,Form1->Height/2);
PaintBox1->Canvas->LineTo(Form1->Width/2,Form1->Height);
PaintBox1->Canvas->MoveTo(Form1->Width/2,Form1->Height/2);
PaintBox1->Canvas->MoveTo(Form1->Width/2,Form1->Height/2);
PaintBox1->Canvas->LineTo(Form1->Width/2,0);
PaintBox1->Canvas->MoveTo(Form1->Width/2,Form1->Height/2);
PaintBox1->Canvas->LineTo(0,Form1->Height/2);
PaintBox1->Canvas->MoveTo(Form1->Width/2,Form1->Height/2);
PaintBox1->Canvas->LineTo(Form1->Width,Form1->Height/2);
//numeracja osi OX
for(int i=0;i<Form1->Width;i+=30){
PaintBox1->Canvas->MoveTo(i,Form1->Height/2-5);
PaintBox1->Canvas->LineTo(i,Form1->Height/2+5);
}
//numeracja osi OY
for(int i=;i<Form1->Height;i+=30){
PaintBox1->Canvas->MoveTo(Form1->Width/2-5,i);
PaintBox1->Canvas->LineTo(Form1->Width/2+5,i);
}
PaintBox1->Canvas->Pen->Color=clRed;
PaintBox1->Canvas->MoveTo(0,Form1->Height);
PaintBox1->Canvas->LineTo(Form1->Width,0);
}
To by było na tyle- tylko problem jest taki że przesuwam linie wyznaczające wartości o 10 pikseli cały czas- zarówno w pionie jak i poziomie jednak nie są one dobrze rysowane. Odstęp jest zachowany ale nie podoba mi się to wizualnie.
Potem mam problem z rysowaniem wyznaczonej funkcji... np. 2x-3. Mam pomysł żeby stworzyć dwie tablice które będą przechowywały współrzędne punktów odpowiedzialne za poszczególne wartości na osiach. Np. TablicaX będzie miała 20 elementów- tak żeby był zakres od -10 do 10, i przypisywać im wartości w pikselach z okna- np. 540,550,560,570 i tak dalej- to samo analogicznie z drugą. Liczyć na liczbach i przekształcać na wartości położenia.
Poczytałem tematy podobne i ktoś coś bąknął o bibliotece WinBgim która jest podobno użyteczna w tym. Nie mam pojęcia do czego ona służy lub czy jest jakiś temat objaśniający co poszczególne jej funkcje potrafią- no i informacje których w ogóle się uczyć.
Jak ktoś może to bardzo proszę o pomoc, może jest możliwość przekonfigurowania ekranu żeby nie był w pikselach tylko liczba i środek formularza miał współrzędne 0,0.
Pozdrawiam i czekam na odpowiedź. Każda krytyka jest mile widziana :D.