Responsive image Boda Szilárd weblapja

Házi feladat:

1. Az előző órán tanult grafikus könyvtárral divide et impera módszert használva, rajzoljunk Koch gürbét! A Koch görbe lényege (bővebben itt: wiki),
hogy rekurzívan mindig három részre bontjuk az adott szakaszt, s a középső harmadban levő szakaszt helyettesítjük két szakasszal, amelyek 60 fokos szöget zárnak be egymással, s hosszúságuk megegyezik az eredeti szakasz hosszal.  
Beküldési határidő
2020 február 1, 23:59, az ezután küldött házik 4 esek lesznek, ha tökéletesek, 1 ha nem.
A házi elnevezése: H02_Pelda_Bela.cpp, Pelda Bela helyett az aktuális vezeték és keresztnévvel.
Ne legyenek benne ékezetek, üres helyek, vagy egyéb írásjelek, stb.!
Azoknál a háziknál, amelyek kísértetiesen hasonlítanak (másolás, ugyanonnan inspirálódtak, stb,)
mindkettőnek 1 es jár.
Így kell átnevezni



Segítség: ennél a feladatnál a fő kihívást a közbenső pontok koordinátáinak kiszámolása fogja jelenteni, ugyanis ha ezekkel megvagyunk, csak ki kell rajzoljunk a line paranccsal a szakaszokat (ezt csak a leállásí feltételnél). Ezekhez a következő képleteket használhatjuk: (x1, y1 a kezdeti pont, xn, yn a végső pont koordinátái, az x2,y2 a második pont koordinátái, stb...)

x2=x1+cos(alfa)*d;
y2=y1+sin(alfa)*d;
ahol d a szakasz hossza, alfa az aktuális forgatási szög (ez csak kezdetben lesz 60).

x3=x2+cos(alfa+pi/3)*d;
y3=y2+sin(alfa+pi/3)*d;

x4 = x2 + d*cos(alfa);
y4 = y2 + d*sin(alfa);


x5 = xn;
y5 = yn;
Ajánlott paraméterezése a függvénynek:
void Koch(int x1, int y1, float alfa, int xn, int yn, int n);
ahol n azt adja meg, hogy hányszor szeretnénk még meghívni rekurzívan. Ajánlott main ből való hívás:
Koch(0,200, 0, 600, 200, 3);