Abstract
Abstract
The aim of this project is to make a program which can draw an object. This object can also make functions like rotation, translation by giving comands. The values of properties of change-section are registred in arrays, that we can use them in equations. The program also contain menu with some options. This options can show different sizes of object. The program is written by language JAVASCRIPT.
Page at article number seven represents a simple example of drawing in PHIGS library.Those simple drawings can be rotated, translated and scaleted. The values of points which are used for drawings are registered in arrays.
1.Uvod
Vaje pri predmetu Postopki Konstruiranja so sestavljene iz dveh delov. V prvem delu vaj uporabljamo program i-DEAS, s katerim računamo in konstruiramo 3D modele, (Npr. model konzolno vpetega nosilca obremenjen pod statično oz. dinamično obremenitvijo). Drugi del vaj pa je namenjen programiranju, s pomočjo katerega lahko izrisujemo različne oblike, preračunavamo strojne elemente, izvajamo operacije kot so skalacija ali rotacija ali premiki,..Uporablja se predvsem programski jezik JAVASCRIPT.
2. Definicija naloge
Program naj prikaže povezavo batne ročice z batom preko sornika varovanega z vskočnikoma na obeh straneh.
3. Opis reševanja
Program mora najprej izrisati željeno obliko. Zato je potrebno najprej določiti vse točke glede na definirani koordinatni sistem. Te točke se povežejo s funkcijo ppolyline v željeno obliko.črte, ki nastopajo ne ločimo po debelini oz. vrsti, temveč po barvi (bela-debela črta, rdeča-srednjica,...). Operacije premika, rotacije in skaliranja se vršijo z posebnimi funkcijami. Poleg tega je potrebno za rotacijo napisati matriko, da se zarotira vsaka točka posebej. Pri teh premikih moramo tudi podati za koliko enot oz. stopinj naj se spremeni. Te funkcije se vršijo s klikanjem na gumbe. Pimer zavrtitve točke okoli izhodišča:
xn0=(x0-xr)*Math.cos(kot*radiani)- (y0-yr)*Math.sin(kot*radiani); yn0=(y0-yr)*Math.cos(kot*radiani)+ (x0-xr)*Math.sin(kot*radiani);
dodamo še enačbo za skaliranje in premik: x1=xn1*FS+xr+xp; y1=yn1*FS+yr+yp;
FS-faktor skalacije
xr,yr-rotacija
xp,yp-premik
Program je opremljen še s funkcijo, ki nam omogoča izbor različnih vrst zveze. Lahko izbiramo votel ali poln sornik, manjšo debelino ojnice, širšo steno bata. Zaradi velikega števila točk, nam veliko prostora vzamejo matrike ali izvršilne funkcije. Zato se uporabi for-zanka.
primer for-zanke:
var xnp = new Array();
var ynp = new Array();
for (var j=1; j <= 164; j++) {
xnp[j]=(xpp[j]-xr)*R_cos- (ypp[j]-yr)*R_sin; ynp[j]=(ypp[j]-yr)*R_cos+ (xpp[j]-xr)*R_sin; xpp[j]=xnp[j]*FS+xr+xp; ypp[j]=ynp[j]*FS+yr+yp; }
4. Teoretične osnove
4.1 Transformacije
- Translacija točke v 2D prostoru
- Rotacija točke v 2D prostoru
- Skalacija točke v 2D prostoru
4.2 Zapis transformacij v kartezijevih koordinatah
- Rotacija
-Skalacija
4.3 Zapis transformacij v homogenih koordinatah
- Translacija
-Rotacija
- Skalacija
5. Zaključek
Reševanja seminarske naloge sem se lotil kot začetnik, tako v uporabi HTML-ja, kot tudi v programiranju v jeziku JavaScript. Zato sem veliko časa porabil za spoznavanje programskega jezika, predvsem zato, ker sem v preteklosti uporabljal Fortran in ne C-ja, ki je JavaScript-u vsaj nekoliko podoben. Zato sem si največ pomagal s knjigo Petra Hribarja z naslovom SPOZNAJMO JAVASCRIPT.
6. Literatura
Peter Hribar:SPOZNAJMO JAVASCRIPT ,Flamingo 1998
Bojan Kraut:STROJNIŠKI PRIROČNIK