Na spodnji sliki je prikazan vijak z merami:
Standardni podatki za vijake po DIN 2509 so prikazani v naslednji tabeli:
Transformacije v prostoru so:
- translacija
- skalacija
- rotacija
Tocke lahko transliramo v prostoru kot je prikazano na sliki:
Matematicno pa transformacije v prostoru zapisemo z naslednjimi enacbami:
Tocke v prostoru lahko tudi skaliramo. To pomeni, da tocke mnozimo z nekim faktorjem, ki poveca ali pomanjsa razdalije med tockami.
Skalacija tock v prostoru je prikazana na spodnji sliki:
Skaliranje tock v prostoru pa matematicno zapisemo z naslednjimi enacbami:
Kjer je S skalirni faktor.
Tocke v prostoru pa lahko tudi rotiramo, tako da lahko sliko pogledamo iz razlicnih smeri.
Rotacija tock v prostoru je prikazana na spodnji sliki:
Matematicno pa rotacijo zapisemo z naslednjimi enacbami:
Translacija
Rotacija okrog x osi
Rotacija okrog y osi
Rotacija okrog z osi
Skaliranje
Pri homogenih koordinatah imamo eno matriko, katero mnozimo z dvo ali tro-dimenzionalnimi vektorji. To je 4 x 4 matrika, ki ima na mestu cetrti stolpec, cetrta vrstica, stevilo 1. Ce risemo v dveh dimenzijah ima vekto obliko: [x,y,1]. Ta 1 nam predstavlja x-y ravnino. Ce pa risemo v treh dimenzijah ima vektor obliko: [x,y,z,1].
Translacija
Rotacija okrog x osi
Rotacija okrog y osi
Rotacija okrog z osi
Skaliranje
Program sem naredil tako, da sem najprej definiral obliko uporabniške strani in definiral velikost prikazovalnega okna. Funkcija "rotacija" ima osem spramenljivk, ki jih spreminjamo tako, da spreminjamo vrednosti v okenckih na zaslonu in potem pritisnemo gumb Izris mreznega modela.
Najprej sem definiral tocke krogov, tako da sem kroznico opisal s stiriinsestdesetimi tockami za katere sem podatke jemal iz baze podatkov. Vse tocke vijaka so postavljene glede na lokalni koordinatni sistem, ki ima sredisce v centru najnizjega kroga. Vse te tocke sem potem transformiral s pomocjo transformacijske matrike. Definiral sem tocke glavnega koordinatnega sistema. Te tocke sem potem rotiral se okrog osi y in z. Potem sem definiral se povezovalne crte med krogi. Crte porekajo od prvega do zadnjega kroga. Uporabnik ima moznost izbrati stevilo crt. Izbira lahko med 2, 4, 8, 16, 32 in 64 crt. Program je izdelan tako, da sta na zacetku samo dve crti. Nato sem definiral se izris nastavka. Za izris nastavka sem definiral tocke, ki sem jih povezal s crtami. Vse te crte sem izrisal s PHIGS ukazi.
Program je izdelan tako,da ce pade slika izven zaslona, se celotna slika pomanjsa, tako da pade celotna slika na zaslon. To pomeni, da ce vijak zelo povecamo, bo na zaslonu ostal enak, zmanjsal pa se bo koordinatni sistem. Podobno se zgodi, ce vijak mocno premaknemo. Takrat se pomanjsa celotna slika in tako ostane na zaslonu.
Program omogoca tudi izbiro izhodnega formata, to je DXF ali VRML. S klikom na gumb Write DXF oziroma Write VRML program izpise DXF oziroma VRML datoteko. Ce uporabljamo Netscape lahko shranimo datoteko direktno iz prikazovalnega okna. Ce pa uprabljamo MicroSoft Internet Explorer, pa z desnim gumbom na miski kliknemo na prikazovalno okno, izberemo "Izvorna koda" (View Source) in shranimo iz urejevalnika besedil.
Najmanjsi vijak, ki se izrise pri zagonu programa:
Globalni koordinatni sistem in lokalni koordinatni sistem se pokrivata:
Stranska slika vijaka:
Vijak je premaknjen v vseh treh koordinatah in zarotiran okrog osi x:
Vijak z najgostejso mrezo:
Najvecji vijak po standardu DIN 2509:
Baza podatkov izgleda tako kot je prikazano na spodnji sliki:
Ce zelimo naprimer dodati vijak M12, ki pa je za 20 mm krajsi od obstojecega, v bazo.js dodamo vrstico, ki je prva v bazi podatkov. Ta vrstica je prikazana na spodnji sliki:
Pri izdelavi programa sem se seznanil s programskim jezikom JavaScript in graficno knjiznico PHIGS s pomocjo katere sem izrisoval crte. Spoznal sem tudi osnove geometrijskih transformacij v 3D prostoru. S pomocjo transformacij lahko premikamo po zaslonu, ga povecujemo ali zmanjsujemo in ga rotiramo okrog vseh treh koordinat.
1. DIN standard
2. Peter Hribar: Spoznajmo JavaScript, Flamingo 1998
3. Peter Hribar: HTML, Flamingo 1996