Witajcie!
Muszę napisać algorytm w c++ rysujący pewnego fraktala. Rysunek fraktala dostępny jest pod adresem http://republika.pl/rotsenbox/Image2.jpg . Mam C++ Builder 6 Ent i napisałem w nim pewną funkcję:
void TForm1::mydraw(int x, int y, int l, int t)
{
Canvas->MoveTo(x, y);
Canvas->LineTo(x + l/2, y - l/4);
Canvas->LineTo(x + l, y);
Canvas->LineTo(x + l, y + l/2);
Canvas->LineTo(x + l/2, y + l/2 + l/4);
Canvas->LineTo(x, y + l/2);
Canvas->LineTo(x, y);
if (t > 1)
{
mydraw(x, y, (l/5)*2, t-1);
mydraw(x, y + (l/10)*3, (l/5)*2, t-1);
mydraw(x + (l/68)*24, y - (l/20)*3, (l/5)*2, t-1);
mydraw(x + (l/68)*24, y + (l/20)*9, (l/5)*2, t-1);
mydraw(x + (l/68)*48, y, (l/5)*2, t-1);
mydraw(x + (l/68)*48, y + (l/10)*3, (l/5)*2, t-1);
}
}
Po wywołaniu jej z parametrami: mydraw(200, 200, 400, 2) jest prócz gwiazdy niby wszystko dobrze. Jeśli parametr l zmienie np. z 400 na 100 to juz zaczyna sie krzywic :-( Psują się środkowe figury i te na prawo wiec podejrzewam ze chodzi tu o (l/68)*24 itd. Ale dlaczego tak jest?
Dziękuje za wszystkie odpowiedzi.
Ps. jak można zapełnić tą gwiazde w środku? Dopiero ucze sie c++ :-)