Operacije sa vektorima – aplikacija za vežbanje
U nastavku je prikazana aplikacija za vežbanje sabiranja, oduzimanja dva vektora, upotrebom metode poligona vektora kao i metode paralelograma.Takođe je dodata i opcija množenje vektora skalarom. Potrebno je kreirati izraz sa vektorima, a zatim klikom na dugme "Practice", započeti vežbu. Da bi ste pogledali uvodni deo o operacijama sa vektorima i pisanje koda u Processing-u otvorite stranicu: Vektori u Processing-u
Sabiranje vektora
Vektori se mogu sabrati na dva naćina: metodom poligona i metodom paralelograma.
Metoda poligona
Neka su data dva vektora "a" i "b" (vektori obojeni svetlo plavom bojom na slici 1). Metoda poligona se sastoji u nadovezivanju jednog vektora na drugi, tako da se početak drugog poklapa sa završetkom prvog(translirani vektori a i b, sada obojeni teget plavom bojom na istoj slici). Rezultanta je novi vektor "c", čiji se početak poklapa sa početkom prvog, a kraj sa krajem drugog.(na slici1 obojen crvenom bojom). Sabiranje vektora, možete vežbati pomoću aplikacije "Operacije sa vektorima", koja se nalazi u nastavku, na istoj stranici, kao i video tutorijal za korišćenje iste.

U slučaju sabiranja dva kolinearna vektora, rezultanta se dobija na sličan način samo što je ona sada u istoj liniji sa oba vektora, kao što se može videti na slici 2.

Metoda paralelograma
Ova metoda je prikazana na slici broj 3 i sastoji se u tome da se vektori prvo nadovežu jedan na drugi, tako da im se počeci poklapaju(teget obojeni vektori "a" i "b"), a zatim se docrta paralelogram, tako da ti vektori predstavljaju različite stranice paralelograma. Rezultantni vektor je vektor čiji je početak zajednički sa oba vektora koji se sabiraju i proteže se preko dijagonale paralelograma, što se može videti na slici.

Oduzimanje vektora
Oduzimanje dva vektora "a-b" se svodi na sabiranje vektora i vektora b sa suprotnim pravcem, tj. vektorom koji je u ravni vektora zaokrenut za 180 stepeni. Oduzimanje vektora je prikazano na slici 4. Svetlo plavi vektori "a" i "b" su polazni vektori. Oni se u slučaju metode poligona sila nadovežu jedan na drugi(sada obojeni teget bojom) kao i kod sabiranja vektora, a zatim se vektor sa predznakom minus zaokrene za 180 stepeni, tako da ostane istog pravca, ali suprotnog smera, što se može i videti na slici 4. Rezultanta je sad vektor čiji je početak u početku vektora "a", a kraj se poklapa sa krajem vektora "-b"(obojena crveno).

Kada su vektori kolinearni, prvo se nadovežu vektori "a" i "b" jedan na drugi, a zatim se vektor "b" okrene za 180 stepeni, da bi postao vektor "-b", tj. vektor koji ima isti intenzitet i pravac kao vektor "b", ali suprotan smer(vektori obojeni teget plavom bojom na slici 5). Rezultanta je vektor "c", čiji se početak poklapa sa vektorom "a", a kraj sa krajem vektora "(-b)"(crveno obojena na slici 5)

Množenje vektora skalarom
Pretpostavimo da je zadat vektor a(20,10) i da treba da se odredi vektor c=3*a.
Množenje vektora sa skalarom(3 u ovom primeru) se vrši tako što se intenzitet vektora poveća 3 puta, dok pravac i smer vektora ostaju isti.(vidi sliku 5).

Video tutorijal za korišćenje aplikacije: Operacije sa vektorima
Upotreba aplikacije na desktop računarima
Upotreba aplikacije na mobilnim uređajima
Razlaganje vektora na komponente
Vektor se može zameniti svojim komponentama u bilo koja dva pravca u ravni, ali mi ćemo razmotriti razlaganje vektora na pravce koordinatnih osa. Vektor "a" se npr može zameniti svojim komponentama ax i ay, koje su takođe vektori i čiji se pravac poklapa sa pravcem X, odnosno Y ose. Zraci projekcije koji prolaze kroz početak i kraj vektora padaju upravno na ove ose, određujući vektore komponenti "ax" i "ay" za vektor a, odnosno "bx" i "by" za vektor b, što se može videti na slici 6.

Ako bi vektor "a" bio definisan kao npr. a(30,20) onda bi intenzitet vektora "ax" bio jednak 30, a intenzitet vektora "ay" bi bio jednak 20.
U processing-u bi se definisao vektor preko klase PVector, za java verziju ili preko klase p5.Vector ako je u pitanju javascript. U nastavku ćemo definisati npr vektore "a" i "b" i zatim odrediti i iscrtati komponente pomoću processing-a.
Kod sa slike 7: Razlaganje vektora na komponente-kod, prvi deo
PVector a; // vektor a
PVector b; // vektor b
PVector ax, ay; // projekcije vektora a
PVector bx, by; // projekcije vektora b
PVector xOsa; // x osa
PVector yOsa; // y osa
PVector pozA; // pozicija vektora "a"
PVector pozB; // pozicija vektora "b"
PVector pozXOse; // pozicija X ose
PVector pozYOse; // pozicija Y ose
float RAZMERA = 3; // razmera za prikaz sila
void setup() {
size(500, 500, P2D);
pozA = new PVector(15 * RAZMERA, 20 * RAZMERA); // pozicija vektora "a" – kreiranje
pozB = new PVector(-10 * RAZMERA, -15 * RAZMERA); // pozicija vektora "b" – kreiranje
pozXOse = new PVector(-width / 2 + 10, 0); // pozicija X ose – kreiranje
pozYOse = new PVector(0, -height / 2 + 10); // pozicija Y ose – kreiranje
a = new PVector(30 * RAZMERA, 20 * RAZMERA); // kreira vektor a
b = new PVector(-30 * RAZMERA, -30 * RAZMERA); // kreira vektor b
xOsa = new PVector(width - 20, 0); // vektor x ose
yOsa = new PVector(0, height - 20); // vektor y ose
/* Kreira projekcije */
ax = new PVector(a.x, 0);
ay = new PVector(0, a.y);
bx = new PVector(b.x, 0);
by = new PVector(0, b.y);
}

Kod sa slike 8: Razlaganje vektora na komponente-kod, drugi deo
void draw() {
background(255);
translate(width / 2, height / 2);
crtanjeVektora(pozXOse, xOsa, color(0, 0, 0), 3); // X osa
crtanjeVektora(pozYOse, yOsa, color(0, 0, 0), 3); // Y osa
crtanjeVektora(pozA, a, color(255, 0, 0), 5); // crta vektor "a"
crtanjeVektora(pozB, b, color(255, 0, 255), 5); // crta vektor "b"
/* Crtanje komponentnih vektora */
crtanjeVektora(new PVector(pozA.x, 0), ax, color(255, 0, 0), 3); // crta vektor "ax"
crtanjeVektora(new PVector(0, pozA.y), ay, color(255, 0, 0), 3); // crta vektor "ay"
crtanjeVektora(new PVector(pozB.x, 0), bx, color(255, 0, 255), 3); // crta vektor "bx"
crtanjeVektora(new PVector(0, pozB.y), by, color(255, 0, 255), 3); // crta vektor "by"
}
/* Metoda koja crta bilo koji vektor */
void crtanjeVektora(PVector poz, PVector v, color c, float s) {
float ugao = v.heading(); // ugao vektora prema x osi, sa znakom
push(); // u kombinaciji sa pop omogućava da se koordinatni sistem privremeno premesti ili rotira
translate(poz.x, poz.y);
rotate(ugao);
fill(c); // boja ispune vektora
stroke(c); // boja linije vektora
strokeWeight(s); // debljina linije vektora
line(0, 0, v.mag(), 0); // crta telo vektora
/* crtanje strelice */
translate(v.mag(), 0);
triangle(0, 3, 10, 0, 0, -3);
pop();
}

Pre setup metode kreirani su objekti klase PVector, pozicije vektora "a" i "b", kao i koordinatnih osa, vektori "a" i "b", koordinatne ose, projekcije vektora. Ovi vektori su kreirani u setup metodi, a crtaju se u draw metodi pozivom nove metode "crtanjeVectora", koja crta bilo koji vektor u zavisnosti od poslatih parametara. Kao parametri se šalju: vektor pozicije početka vektora, sam vektor, boja i debljina linije za crtanje. Za rad sa klasom PVector, pročitajte članak: Vektori u Processing-u.
Posle pokretanja koda dobiće se(vidi sliku 9):

Nastavak aplikacije u kome će se docrtati pomoćne linije ispisati oznake itd. se ostavlja čitaocu kao vežba.
Projekcije vektora na koordinatne ose
Projektovanje vektora na koordinatne ose je slično razlaganju vektora na komponente, s tim da je projekcija skalar, a ne vektorska veličina i da može imati predznak "+" ili "-", tj. može biti pozitivna ili negativna, a to zavisi od smera originalnog vektora u odnosa prema X, odnosno prema Y osi (vidi sliku 10).

Proveri znanje
Otvori kviz
Kviz: Operacije sa vektorima
1. Kako se sabiraju vektori metodom poligona?
2. Šta je razlika a − b?
3. Šta se desi sa vektorom pomnoženim negativnim brojem?
4. Komponente vektora intenziteta v pod uglom α prema x osi su:
| Prethodno |< Vektori u Processing-u |
Sledeće Kos hitac u Processing-u >| |
OPERACIJE SA VEKTORIMA-APLIKACIJA ZA EDUKACIJU
U nastavku je prikazana aplikacija za vežbanje sabiranja, oduzimanja dva vektora, upotrebom metode poligona vektora kao i metode paralelograma.Takođe je dodata i opcija množenje vektora skalarom. Potrebno je kreirati izraz sa vektorima, a zatim klikom na dugme "Practice", započeti vežbu. Da bi ste pogledali uvodni deo o operacijama sa vektorima i pisanje koda u Processing-u otvorite stranicu: Vektori u Processing-uSabiranje vektora
Vektori se mogu sabrati na dva naćina: metodom poligona i metodom paralelograma.
Metoda poligona
Neka su data dva vektora "a" i "b" (vektori obojeni svetlo plavom bojom na slici 1). Metoda poligona se sastoji u nadovezivanju jednog vektora na drugi, tako da se početak drugog poklapa sa završetkom prvog(translirani vektori a i b, sada obojeni teget plavom bojom na istoj slici). Rezultanta je novi vektor "c", čiji se početak poklapa sa početkom prvog, a kraj sa krajem drugog.(na slici1 obojen crvenom bojom). Sabiranje vektora, možete vežbati pomoću aplikacije "Operacije sa vektorima", koja se nalazi u nastavku, na istoj stranici, kao i video tutorijal za korišćenje iste.
Metoda paralelograma
Ova metoda je prikazana na slici broj 3 i sastoji se u tome da se vektori prvo nadovežu jedan na drugi, tako da im se počeci poklapaju(teget obojeni vektori "a" i "b"), a zatim se docrta paralelogram, tako da ti vektori predstavljaju različite stranice paralelograma. Rezultantni vektor je vektor čiji je početak zajednički sa oba vektora koji se sabiraju i proteže se preko dijagonale paralelograma, što se može videti na slici.
Oduzimanje vektora
Oduzimanje dva vektora "a-b" se svodi na sabiranje vektora i vektora b sa suprotnim pravcem, tj. vektorom koji je u ravni vektora zaokrenut za 180 stepeni. Oduzimanje vektora je prikazano na slici 4. Svetlo plavi vektori "a" i "b" su polazni vektori. Oni se u slučaju metode poligona sila nadovežu jedan na drugi(sada obojeni teget bojom) kao i kod sabiranja vektora, a zatim se vektor sa predznakom minus zaokrene za 180 stepeni, tako da ostane istog pravca, ali suprotnog smera, što se može i videti na slici 4. Rezultanta je sad vektor čiji je početak u početku vektora "a", a kraj se poklapa sa krajem vektora "-b"(obojena crveno).
Množenje vektora skalarom
Pretpostavimo da je zadat vektor a(20,10) i da treba da se odredi vektor c=3*a.Množenje vektora sa skalarom(3 u ovom primeru) se vrši tako što se intenzitet vektora poveća 3 puta, dok pravac i smer vektora ostaju isti.(vidi sliku 5).
Video tutorijal za korišćenje aplikacije: Operacije sa vektorima
Upotreba aplikacije na desktop računarima |
Upotreba aplikacije na mobilnim uređajima |
Operacije sa vektorima
Animacija ne radi? Učitajte stranicu ponovo(refresh)
← scroll horizontal →
Razlaganje vektora na komponente
Vektor se može zameniti svojim komponentama u bilo koja dva pravca u ravni, ali mi ćemo razmotriti razlaganje vektora na pravce koordinatnih osa. Vektor "a" se npr može zameniti svojim komponentama ax i ay, koje su takođe vektori i čiji se pravac poklapa sa pravcem X, odnosno Y ose. Zraci projekcije koji prolaze kroz početak i kraj vektora padaju upravno na ove ose, određujući vektore komponenti "ax" i "ay" za vektor a, odnosno "bx" i "by" za vektor b, što se može videti na slici 6.
U processing-u bi se definisao vektor preko klase PVector, za java verziju ili preko klase p5.Vector ako je u pitanju javascript. U nastavku ćemo definisati npr vektore "a" i "b" i zatim odrediti i iscrtati komponente pomoću processing-a.
Posle pokretanja koda dobiće se(vidi sliku 9):
Projekcije vektora na koordinatne ose
Projektovanje vektora na koordinatne ose je slično razlaganju vektora na komponente, s tim da je projekcija skalar, a ne vektorska veličina i da može imati predznak "+" ili "-", tj. može biti pozitivna ili negativna, a to zavisi od smera originalnog vektora u odnosa prema X, odnosno prema Y osi (vidi sliku 10).
| Prethodno |< Vektori u Processing-u |
Sledeće Kos hitac u Processing-u >| |
