Mam prośbę potrzebuje narysować wykres funkcji kwadratowej. Coś zrobiłem ale jeszcze to nie to... wykres nie jest taki jak powinien:
masa zmiennych pomocniczych
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include <Math.hpp>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
float xmin, xmax, ymin, ymax, hmax, hmin, i;
float a, b, c, dx, dy, yw, xw, delta, ym1, ym2,y; //wierzcholki
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Canvas->MoveTo(200,200); //rysuje os
Canvas->LineTo(600,200);
Canvas->MoveTo(400,10);
Canvas->LineTo(400,400);
xmin=200.0;xmax=600.0;ymin=10.0;ymax=400.0;
a=StrToFloat(Edit1->Text); //przypisywanie wartosci editowi
b=StrToFloat(Edit2->Text);
c=StrToFloat(Edit3->Text);
delta=(pow(b,2)-(4*(a*c)));
yw=(-delta)/(4*a);
ym1=a*pow(10,2)+b*10+c;
ym2=a*pow(-10,2)+b*(-10)+c;
if (ym1>ym2) hmax=ym1; else hmax=ym2;
hmin=yw;
dy=((hmax-hmin)/(ymax-ymin))*1.0;
//if(dy<0) dy=dy*(-1);
dx = (10/(xmax-xmin))*1.0;
//s=s0+v0*t+(a*t*t)/2;
// yv = v0*t-((g*pow(t,2))/2.0);
y=ymax-((ymax-ymin)/ym1)*(a*pow(dx*1,2)+(b*dx*1)+c);
Canvas->MoveTo(200,y);
for(float i=0;i<=(xmax-xmin);i++)
{
//y=ymax-((ymax-ymin)/s)*(s0+v0*dx*i+(a/2.0)*pow(dx*i,2));
// y=ymax-((ymax-ymin)/yv)*((v0*dx*i*sin(alfa))-((g*pow(dx*i,2))/2.0));
y=ymax-((ymax-ymin)/ym1)*(a*pow(dx*i,2)+(b*dx*i)+c);
Canvas->LineTo(xmin+i,y);
}
}
//---------------------------------------------------------------------------