Funkcja sin/błąd/przekształcenie- iloczyn X

0
                if(Form1->RadioButton7->Checked==true){
        float tmp;
        PaintBox1->Canvas->Pen->Color=Form4->ColorBox1->Selected;
        PaintBox1->Canvas->Pen->Width=Form4->TrackBar1->Position;
        PaintBox1->Canvas->MoveTo(0, StrToFloat(Form1->Edit6->Text)*sin(((0-PaintBox1->Width/2*M_PI)/180.0f))+PaintBox1->Height/2);
                for(float i=0;i<PaintBox1->Width;i++){
                tmp=(StrToFloat(Form1->Edit6->Text)*sin(((i*StrToFloat(Form1->Edit7->Text)-PaintBox1->Width/2-(30*StrToFloat(Form1->Edit8->Text)))*M_PI)/180.0f));
                PaintBox1->Canvas->LineTo(i,(-1)*(tmp*30+(30*StrToFloat(Form1->Edit9->Text)))+PaintBox1->Height/2);
                }
        PaintBox1->Canvas->Pen->Width=Form3->TrackBar1->Position;
        PaintBox1->Canvas->Pen->Color=Form3->ColorBox1->Selected;
        } 

Exec programu:
http://www.voila.pl/300/8v34f/
Bug:
http://www.voila.pl/302/6hbbr/index.php?get=1&f=1
http://www.voila.pl/303/5k8nn/index.php?get=1&f=1
Chodzi o przekształcenie w zaznaczonym edicie.
*tmp=(StrToFloat(Form1->Edit6->Text)sin(((iStrToFloat(Form1->Edit7->Text)-PaintBox1->Width/2-(30*StrToFloat(Form1->Edit8->Text)))M_PI)/180.0f));
Wydaje mi się że tutaj jest błąd, robiłem to już kilka razy od nowa na kilka sposobów i wszystko jest ok. Podzielone to jest na dwie linijki bo potem:
PaintBox1->Canvas->LineTo(i,(-1)(tmp30+(30*StrToFloat(Form1->Edit9->Text)))+PaintBox1->Height/2);
Tutaj przechodzi do i (czyli piksela), odwraca wykres (bo nieodwrócony jest zły, nie wiem czemu ale tak jest), potem tmp mnoży przez 30 (bo 30 to odstęp kratki jednej) i dodaje wektor przesunięcia z edita ostatniego (czyli q z wzorów) i mnoży go również przez 30 żeby przeszedł na wartość pikselową. Na koniec dodaje połowę wartości wysokości paintboxa - ano po to żeby wykres był widoczny, czyli z góry przesuwamy go na widok :).

Proszę bardzo o pomoc... tylko to mi zostało, reszta działa.

0

odświeżam temat bo zedytowałem cały post pierwszy- więcej informacji i wklejony kod na którym dzisiaj skończyłem pracę.

0

Nie zagłębiałem się w kod, ale skoro wykres Ci się obraca to całkiem możliwe że dostajesz kąt dla którego wartość sin jest < 0.

0

EDIT: temat do zamknięcia, dzisiaj o 10:30 po przebudzeniu doznałem olśnienia- działa xD.

1 użytkowników online, w tym zalogowanych: 0, gości: 1