CAAD és építészinformatika (BMEEPAG0202)

Parametrikus modellezés (GDL)



Zárthelyi feladat minta 1.


'n' oldalú szabályos sokszög ablak készítése
Paraméterek:

    A sokszög köré írható kör sugara: r

    oldalak száma: n


nszog_ablak / 3D leírás

! nszög ablak 3D 1.0 ! ! Kiss Zsolt !------------------------------- ADDY r FOR i=0 to n PUT COS(i*360/n) * r PUT SIN(i*360/n) * r PUT 15 NEXT i WALLHOLE n+1, 1, GET ((n+1)*3) FOR i=-1 to n+1 PUT COS(i*360/n) * r PUT SIN(i*360/n) * r PUT 0, 0 NEXT i TUBE 7, NSP/4, 127, 0 , 0 , 0, 0 , 0.1 , 0, 0.12, 0.1 , 0, 0.12, 0.06 , 0, 0.1, 0.06, 0, 0.1, 0, 0, 0 , 0 , 0, GET (NSP) rb = r-.1/cos(180/n) FOR i=0 to n PUT cos(i*360/n+alfa) * rb PUT sin(i*360/n+alfa) * rb PUT 15 NEXT i ADDZ .04 CPRISM_ m,m,m, n+1 , .02, GET(NSP-1), -1

Az ablak eltolása A kontúrpoligon pontjainak feltöltése a verembe A "falluk" elkészítése A tok (TUBE) pályapontjainak feltöltése a verembe ablak tokkeresztmetszet leirása a tok pályájának "leívása" a veremből az üvegezés sokszög köré írható kör sugara Az üvegezés pontjainak feltöltése a verembe Az üvegezés helye Az üvegezés hasábja Az utolsó (első) pont maszk megadása Az utolsó pont maszkértéke a veremben 15, de ezt nem olvassuk ki / GET (NSP-1)


Hogyan lehet gyorsítani a számítást?

Ne számítassuk ki ujra és újra a szögfüggvényeket!

nszog_ablak / 3D leírás

! nszög ablak 3D 2.0 ! ! Kiss Zsolt !------------------------------- r = A/2 ADDY r ROTZ 90 DIM x [100] DIM y [100] FOR i=-1 to n+1 x [i+2] = cos(i*360/n+alfa) y [i+2] = sin(i*360/n+alfa)*a/b NEXT i FOR i=0 to n-1 PUT x [i+2]*r,y [i+2]*r,15 NEXT i WALLHOLE n, 1, GET (NSP) FOR i=-1 to n+1 PUT x [i+2]*r,y [i+2]*r,0,0 NEXT i PEN 1 TUBE 7, NSP/4, 127, 0 , 0 , 0, 0 , 0.1 , 0, 0.12, 0.1 , 0, 0.12, 0.06 , 0, 0.1, 0.06, 0, 0.1, 0, 0, 0 , 0 , 0, GET (NSP) rb = r-.1/cos(180/n) FOR i=0 to n PUT x [i+2]*rb, y [i+2]*rb, 15 NEXT i ADDZ .04 CPRISM_ m,m,m, n+1 , .02, GET(NSP-1),-1

A köré írható kör (ellipszis) befoglaló mérete legyen A és B, a sugár így legyen A/2 Ha nem forgatjuk el az ablakot, a kezdő csúcspont legyen felül. Definiáljunk egy x és egy y tömböt, ide tároljuk el egy egységnyi sugarú n oldalú sokszög pontjainak x és y koordinátáit. Később már csak a sugárral kell beszorozni! Tegyük a verembe a pontok koordinátáit A tömbindex mindíg pozitív egész szám! Tegyük a verembe a pontkoordinátákat és a maszk értéket. Lyukasszuk ki a falat! Tegyük a verembe a pálya x, y koordinátáit a tömbből, a z (0) és a forgatás (0) értéket. A tok A tok keresztmetszet leírása Hívjuk elő a veremből az összes ott tároltat! az üvegezés sokszög köré írható kör sugara Az üvegezés pontjainak feltöltése a verembe Az üvegezés hasábja Az utolsó (első) pont maszk megadása Az utolsó pont maszkértéke a veremben 15, de ezt nem olvassuk ki / GET (NSP-1)