A Vezérleírásban írjuk át paraméteresre a járovonal helyét. (Először definiáljuk a paraméter ablakban a jv (járóvonal a külső széltől) paramétert, valamint hm az elmetszés magasságát . ) |
|
|
|
n=CEIL (e/mmax) m=e/n sz=sz2m-2*m alfa=sz/(r_orso+b_kar - jv)/PI*180 x=SIN(alfa/2) y=COS(alfa/2) |
fellépések száma fellépések tényleges magassága belépés szélessége lépcsőfok nyílásszöge egységnyi sugárhoz tartozó x egységnyi sugárhoz tartozó y Így a cikluson belül nem kell újra és újra szögfüggvénnyekel számolni, ami lelassítaná a programot) |
Az előző gyakorlaton elkészített 2D leírás nem "szabványos", alakítsuk át úgy, hogy 1 méter magasságban vágjuk el a lépcsőt. Fölötte szaggatottan jelöljük a fokokat, jelöljük a járóvonalat emelkedést nyillal. |
|
|
|
n1 = MIN(n, INT(hm/m)) n2 = MAX(0, n-n1) ARC2 0,0,r_orso, 90,90+n1*alfa ARC2 0,0,r_orso+b_kar, 90,90+n1*alfa ARC2 0,0,r_orso+b_kar-jv, 90,90+n1*alfa FOR i=1 TO n1+1 LINE2 0, r_orso, 0, r_orso+b_kar ROT2 alfa NEXT i DEL 1 ! Nyíl felrajzolása LINE2 0, r_orso+b_kar-jv, 0.15,r_orso+b_kar-jv + 0.3 LINE2 0, r_orso+b_kar-jv, 0.15,r_orso+b_kar-jv - 0.3 DEFINE LINE_TYPE "szagg" 1, 3, 0.1/GLOB_SCALE, 0.1/GLOB_SCALE, 0.1/GLOB_SCALE IF n2 > 0 THEN LINE_TYPE "szagg" FOR i = 1 TO n2 ROT2 alfa LINE2 0,r_orso, 0,r_orso + b_kar NEXT i ! Szaggatott nyíl felrajzolása LINE2 0, r_orso+b_kar-jv, 0.15,r_orso+b_kar-jv + 0.3 LINE2 0, r_orso+b_kar-jv, 0.15,r_orso+b_kar-jv - 0.3 DEL TOP ARC2 0,0,r_orso, 90+n1*alfa, 90+n*alfa ARC2 0,0,r_orso+b_kar, 90+n1*alfa, 90+n*alfa ARC2 0,0,r_orso+b_kar-jv,90+n1*alfa, 90+n*alfa ENDIF IF felirat THEN ROT2 n1*alfa/2 ADD2 0, r_orso+b_kar-jv/2 DEFINE STYLE "szel" "Arial", 2, 8, 0 DEFINE STYLE "mag" "Arial", 2, 2, 0 STYLE "szel" TEXT2 0,0, STR(n-1,2,0) + " x " + STR("%2.2cm", sz)+" cm" STYLE "mag" TEXT2 0,0, STR(n,2,0) + " x " + STR("%2.2cm", m)+" cm" ENDIF |
az egy méter alatti lépcsőfokok száma az egy méter feletti lépcsőfokok száma belső ív (folytonos vonal) külső ív (folytonos vonal) járóvonal (folytonos vonal) ciklus i nullától nő egyesével (n1+1)-ig 2D vonal (x1, y1) - (x2, y2) pont között KR* elforgatása alfa szöggel ciklus vége egy tanszformáció visszatörlés Nyíl felrajzolása 2D vonal (x1, y1) - (x2, y2) pont között 2D vonal (x1, y1) - (x2, y2) pont között szaggatott vonal definiálása vonal köz vonal köz vonal Ha van 1 méter felett akkor vonaltípus szaggatott ciklus i nullától nő egyesével n2-ig KR elforgatása alfa szöggel 2D vonal (x1, y1) - (x2, y2) pont között ciklus vége Nyíl felrajzolása 2D vonal (x1, y1) - (x2, y2) pont között 2D vonal (x1, y1) - (x2, y2) pont között összes tanszformáció visszatörlés belső ív (szaggatott vonal) külső ív (szaggatott vonal) járóvonal (szaggatott vonal) feltétel vége Ha van felirat forgassuk el a KR*-t toljuk el KR*-t definiáljuk felirat stílusokat: -belépés szélesség -fellépésmagasság sílus beállítása "szel"-re felirat elhelyezése sílus beállítása "mag"-ra felirat elhelyezése feltétel vége *Koordinátarendszer |
![]() |
A 2D kép most már jobb. Bár a felirat lehetne ívesen! :-)) |