Legyen adott egy tetszőleges gömbháromszög az [i]A, B, C[/i] csúcsaival! Adjuk meg (rajzoljuk meg) a gömbháromszög felületet!
A [url=https://www.geogebra.org/m/xa9gzw7e#chapter/668112]gömbi geometria[/url]i szerkesztésekhez készített [url=https://www.geogebra.org/m/xa9gzw7e#material/gvd7qxun]saját eszköztár[/url]nak az elkészítése közben a fenti feladat megoldása okozott némi fejtörést. Bár egy program felhasználóját nem kell, hogy érdekeljék a program készítésekor felmerülő problémák, ezúttal a tapasztalatok megosztása céljából érdemes kivételt tenni.[br]Általában egy felület megjelenítéséhez vagy a felület poliéderes - többnyire háromszöges - megközelítésével, vagy a felületet leíró kétváltozós függvény megadásával juthatunk el. [br]Itt is ezt a két utat alkalmaztuk.
Az [b]A, B, C[/b] gömbi pont megadását követően az alábbi GeoGebra utasításokat alkalmaztuk:[br][list][*]Megadtunk egy [b]n[/b] számot, amely a közelítés finomságát szabályozza. Jelen esetben [b]n=9[/b], de ennek a megadását függővé tehetjük az ABCΔ legnagyobb oldalától, kerületétől, stb. Számolnunk kell azonban azzal, hogy n növelésével lelassul a program, különösen ,ha több G háromszöget kell "befestenünk."[/*][*]Felosztjuk az [i]AB[/i] és [i]AC[/i] gömbi szakaszt [i]n[/i] egyenlő részre . (Ehhez használtuk a megfelelő saját eljárest: Pl. [b][size=85]b_n=GSzakaszOSZT(A, C, n) [/size][/b][/*][*][size=85][size=100]Az így keletkező osztópontokat rendre tovább osztottuk minden sorban 1-el kevesebb részre, így előállítottunk egy háromszögrácsot: [br][/size][/size][b][size=85]P=Sorozat(GSzakaszOSZT(Elem(c_n,i),Elem(b_n,i),i), i,1,n+1)[/size][/b][/*][*]Megrajzoltuk a szomszédos rácspontok háromszögeit:[br][b][size=85] HR=Sorozat([br] Sorozat({[br] Sokszög(Elem(P, i, j), Elem(P, i+1, j), Elem(P, i+1, j+1)),[br] Sokszög(Elem(P, i, j+1), Elem(P, i, j), Elem(P, i+1, j+1))},[br] j,1, i+1), i,1,n)[/size][/b][/*][*]Gondoskodnunk kell arról, hogy a kapott [b][size=85]HR[/size][/b] felületet alkotó háromszögek éleinek a vonalvastagsága és átlátszatlansága 0 legyen. Maga a felület átszínezhető, átlátszatlansága legyen maximális, azaz 1.[/*][*]Végül készítsük el a saját eljárást, amelynek kimenő adata [b][size=85]HR[/size][/b], bemenő adatai az [b][size=85]A,B,C[/size][/b] pontok.[br][/*][/list]
A háromszög felületet úgy kell megadnunk, hogy a határvonalai pontosan a háromszög élei legyenek. Az út lényegében az előzőhöz hasonló. a különbség abban van, hogy ezt kétváltozós függvényekkel kell megadni. az [b][size=85]A, B, C[/size][/b] gömbi pontokat megadva mindez négy függvénnyel megadható, sőt ezeket akár egyetlen paranccsal meg lehetne oldani.[br][list][*] [b]X(u,v) = v x(A) + (1-v) ((1-u) x(B) + u x(C))[/b][/*][*][b] Y(u,v) = v y(A) + (1-v) ((1-u) y(B) + u y(C))[/b][/*][*][b] Z(u,v) = v z(A) + (1-v) ((1-u) z(B) + u z(C))[/b][/*][*][b] t(u,v) = 5 / sqrt((X(u,v))² + (Y(u,v))² + (Z(u,v))²)[/b][/*][*][b] HF = Felület(X(u,v) t(u,v), Y(u,v) t(u,v), Z(u,v) t(u,v),u,0,1,v,0,1) [/b][/*][/list]Ha [i]u[/i] és [i]v[/i] bejárja a [i](0,1[/i]) intervallumot, akkor az [i](X(u,v),X(u,v),X(u,v))[/i] pont bejárja a - síkbeli - [i]ABC [/i]Δ-et, és ezt a [i]t(u,v) [/i]kivetíti a gömbfelületre. Innen kezdve a [b][size=85]HF[/size] [/b]felülettel ugyanaz a dolgunk, mint az imént a háromszögekből álló[b] [size=85]HR[/size][/b] felülettel volt. [br]A kapott eredmény - gondoljuk, hogy olvasóink szerint is - eléggé szembetűnő az utóbbi eljárás javára.[br]Ráadásul ehhez a programhoz nem volt szükségünk másik saját eljárás alkalmazására.
Csak, hogy - mint minden esetben - most is célszerű alapos tesztelésnek alávetni az így kapott saját eljárásokat. Az [i]ABCΔ[/i] -et megnövelve még szembetűnőbb, a felületrajzoló eljárás előnye: az eljárás eredménye mindig egy szép sima felület, hátránya, hogy ha nagyobb felületet (pl. az egész gömböt ezzel az eljárással színezünk ki, akkor ezzel erősen megnövekszik az applet számolási igénye, így leassul a kezelhetősége.