/****************/ /* sin2.cpp */ /****************/ // Ohjelma, jolla piirretään sin x:n kuvaaja // /vl-96 // Projektiin sin2.cpp ja 3d.cpp. OWL 5.0 #define KUVAAJIEN_LUKUMAARA 4+1 #include #include #include "3d.h" //------------------------------------------------------------------------------ //============================================================== class cFunktionKuvaaja { tFunc f; double x1, x2; COLORREF col; cMatrix M; public: cFunktionKuvaaja(const tFunc af, const double ax1, const double ax2, const COLORREF acol= RGB(0,0,0),cMatrix aM=cMatrix()) : f(af), x1(ax1), x2(ax2), col(acol), M(aM) {;} void Draw(TDC &dc, const cTMatrix &S); }; void cFunktionKuvaaja::Draw(TDC &dc, const cTMatrix &S) { cTMatrix A = S*M; double dx = (x2-x1)/200; dc.SaveDC(); TPen pen(col); dc.SelectObject(pen); dc.MoveTo(A(x1,f(x1))); for (double x=x1+dx; xDraw(dc,A); } TMainWindow::~TMainWindow() { for (int i=0; kuvaajat[i]; i++) delete kuvaajat[i]; } DEFINE_RESPONSE_TABLE1(TMainWindow,TFrameWindow) EV_WM_PAINT, EV_WM_SIZE, END_RESPONSE_TABLE; //------------------------------------------------------------------------------ class TDrawSinApp : public TApplication { //------------------------------------------------------------------------------ public: TDrawSinApp(const char far *name = 0) : TApplication(name) {}; void InitMainWindow() { MainWindow = new TMainWindow(NULL, Name); } }; //------------------------------------------------------------------------------ int OwlMain(int ,char far * []) { return TDrawSinApp("Sin(x)").Run(); }