Salve,
Avrei bisogno di alcuni suggerimenti, correzioni ed ulteriori implementazioni per completare il mio obbiettivo finale, ovvero una piccola applicazione che sfrutti 20 input (LabeledEdit) separate in due gruppi (10 appartenenti ad una grandezza e 10 ad un altra grandezza, in breve 10 misure per ognuna) e ne rappresenti la retta o comunque la grafichi su di una PaintBox tramite un tasto Button.
Spero di essere stato chiaro, e passo quindi al mostrarvi fin dove la mia logica riesce a navigare (studente del terzo anno di elettronica con una passione in programmazione, linguaggi browser soprattutto, ma da qualche mese C++ in DOS e ora in ambiente Windows).
codice:
void __fastcall TForm1::Button1Click(TObject *Sender) { float X, x, Y, y, z, yd, xd, Xmax, Xmin, Ymax, Ymin; PaintBox1->Refresh(); PaintBox1->Canvas->Rectangle(0,0,681,361); //cancella stringhe Canvas->TextOutA(10,320," "); Canvas->TextOutA(10,335," "); //acquisisce coordinate y=(Y1->Text).ToDouble(); x=(X1->Text).ToDouble(); //traccia gli assi PaintBox1->Canvas->MoveTo(0,280); PaintBox1->Canvas->MoveTo(500,280); PaintBox1->Canvas->MoveTo(20,0); PaintBox1->Canvas->MoveTo(20,300); //disegna retta yd=280-ceil((Y*260)/8); PaintBox1->Canvas->MoveTo(20,yd); PaintBox1->Canvas->LineTo(500,yd); //disegna grafico for(z=Xmin; z<=Xmax; z=z+0.001) { Ymax=(YMAX->Text).ToDouble(); Xmax=(XMAX->Text).ToDouble(); yd=280-ceil((y*260)/Ymax); xd=20+ceil((x*480)/Xmax); PaintBox1->Canvas->Pixels[xd][yd]=clRed; } }
Ora il problema:
1. Per il momento ho soltanto preso in considerazione XMAX, YMAX, X (X1), Y (Y1) e di certo non è difficile questa parte ma desidererei avere prima un risultato senza espandermi troppo sulle misure perchè ci sono priorità piu alte come il fatto che non disegna neanche gli assi;
2. Non disegna gli assi delle ascisse e delle ordinate;
3. Non disegna la retta;
4. Devo fare in modo che ogni LabeledEdit debba essere riempita correttamente prima di disegnare il grafico, e quindi visualizzare un errore che inviti l'utente a riempire la casella mancante;
Altre informazioni: Desidero fissare un XMIN e un YMIN a 0, e tramite apposita casella fissare sul grafico XMAX e YMAX. Tra XMIN e XMAX ci saranno tutte le X (X1, X2, X3...) e tra YMin e YMAX tutte le Y (Y1, Y2, Y3...). E di queste misure venga tracciato un grafico con una retta Z o qualsiasi.
Potete darmi qualche delucidazione e qualche aiuto per completare il mio piccolo progetto?
Grazie C=
PS: Per qualsiasi informazione non chiara, sono pronto a rispondere alle vostre (spero semplici) domande ^-^
Buona Domenica.