Responsive image Boda Szilárd weblapja

Laborfeladat:

1. Töltsük le a graphics.h könyvtárat innen: Codeblocks graphics

2. Állítsuk be, hogy futtatható legyen a következő útmutató szerint:

  1. Csomagoljuk ki a letöltött filett
  2. másoljuk át a graphics.h és winbgim.h állományokat a Codeblocks include mappájába (Settings -> Compiler -> Toolchain Executables nél lehet megnézni azt, hogy hova van instalálva a Codeblocks, itt a MinGW/include mappát kell megkeresni. Pl: C:\OJI\Codeblocks\MinGW\include). Figyelem, nem a mingw32 mappába másoljunk!
  3. ha a fentebbi lépés nem sikerülne, akkor töltsük le azt a Codeblocksot, amely non-admin es innen és instaláljuk a D re s annak az illető mappájába másoljuk
  4. Másoljuk át a libbgi.a állományt a MinGW/lib mappába
  5. Nyíssuk ki Codeblocksban a Settings -> Compiler ablakot
  6. a Linker settings fülön a Link librariesbe keressük ki a frissen hozzáadott libbgi.a könyvtárat
  7. az Other linker ablakba írjuk be a következő szöveget:
    -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32
  8. Kattintsunk az OK ra.
Forrás: link

3. Az alábbi példaprogram a Sierpiński-háromszög et rajzolja ki divide et impera módszerrel (wiki), futtassuk CodeBlocks ban s játszadozzunk a paraméterekkel!


#include <graphics.h>
#include <math.h>
#include <stdlib.h>
#include <iostream>



using namespace std;

/**

k = hany rekurziv hivast vegezzen el

x1 - y1 - a haromszog elso pontjanak a kezdeti koordinatai

x2 - y2 - a haromszog masodik pontjanak kezdeti koordinatai

x3 - y3 - a haromszog harmadik pontjanak kezdeti koordinatai

*/

void sierpinski(int x1,int y1,int x2,int y2,int x3,int y3,int k)

{
// a megadott koordinatak kozott mindig ki kell rajzolni a 3 vonalat, eloszor ezt tesszuk meg)
    line(x1,y1,x2,y2);
    line(x1,y1,x3,y3);
    line(x2,y2,x3,y3);

//ha tobb haromszoget kell meg kirajzolni, akkor rekurzivan hivjuk
// a sierpinski fuggvenyt meg haromszor
    if (k > 1) {

       
sierpinski(x1,y1,(x1+x3)/2,(y1+y3)/2,(x1+x2)/2,(y1+y2)/2,k-1);
sierpinski(x2,y2,(x1+x2)/2,(y1+y2)/2,(x2+x3)/2,(y2+y3)/2,k-1);       
sierpinski(x3,y3,(x1+x3)/2,(y1+y3)/2,(x2+x3)/2,(y2+y3)/2,k-1);       
floodfill((x1+x2+x3)/3,(y1+y2+y3)/3,WHITE);

    }

}



int main()

{

    int a;

    cout << "a=";

    cin >> a;

    int gd,gm;

    gd = gm = 0;

    initgraph(&gd,&gm,"");

    setcolor(WHITE);

    setfillstyle(1,WHITE);

    sierpinski(0,479,639,479,320,0,a);

    cin >> a;

    return 0;

}