Հիմնական նյութ
Դասընթաց․ (Ծրագրավորում) > Բաժին 5
Դաս 3: Վեկտորներ- Վեկտորներ. ներածություն
- Մարտահրավեր․ վեկտոր քայլող
- Ավելի շատ վեկտորական մաթեմատիկա
- Մարտահրավեր․ լուսաթուր
- Վեկտորի բացարձակ մեծությունն ու նորմավորումը
- Մարտահրավեր․ բացարձակ մեծության պատկերավորում
- Վեկտորի շարժում
- Մարտահրավեր․ մեքենայի արգելակում
- Ստատիկ ֆունկցիաների ու մեթոդների տարբերությունը
- Մարտահրավեր․ ստատիկ ֆունկցիաներ
- Ինտերակտիվ վեկտորի շարժում
- Մարտահրավեր․ մկնիկին հետևող
- Նախագիծ․ համակարգչային արարածներ
© 2024 Khan AcademyՕգտագործման պայմաններԳաղտնիության քաղաքականությունՔուքի (Cookie) ծանուցում
Վեկտորի բացարձակ մեծությունն ու նորմավորումը
Ինչպես տեսանք, բազմապատկումն ու բաժանումը առանց վեկտորի ուղղություն փոխելու վեկտորի երկարությունը փոփոխելու միջոցներ են։ Միգուցե այս պահին մտածում ես. «Լավ, բայց վեկտորի երկարությունն ինչպե՞ս չափեմ։ Գիտեմ դրա բաղադրիչները՝
x
-ը և y
-ը, սակայն որքա՞ն է սլաքի երկարությունը պիքսելներով»։ Իրականում շատ օգտակար և կարևոր է իմանալ՝ ինչպես հաշվել վեկտորի երկարությունը, որը հաճախ կոչվում է վեկտորի նորմ։Ուշադրություն դարձրու, որ տրված դիագրամում որպես սլաք պատկերված վեկտորը իր երկու բաղադրիչների՝
x
-ի և y
-ի հետ ուղղանկյուն եռանկյուն է ստեղծում։ Կողմերը բաղադրիչներն են, ներքնաձիգը հենց սլաքն է։ Ուղղանկյուն եռանկյունի առկայությունը շատ լավ է, քանի որ Պյութագորաս անունով հույն մաթեմատիկոսը դուրս էր բերել ուղղանկյուն եռանկյան կողմերի և ներքնաձիգի հարաբերությունը նկարագրող պարզ բանաձև, և այն կարող ենք կիրառել։ Պյութագորասի թեորեմը հետևյալն է. քառակուսի գումարած քառակուսի հավասար է քառակուսի։
Այս բանաձևի միջոցով -ի երկարությունը կարող ենք հաշվել այսպես՝
Հետևաբար,
PVector
կիրառելու կոդը կլինի հետևյալը. PVector.prototype.mag = function() {
return sqrt(this.x*this.x + this.y*this.y);
};
Հետևյալ օրինակում կարող ես վեկտորի երկարությունը տեսողական պատկերացնել՝ նայելով կտավի վերին գոտուն։
Վեկտորի երկարության հաշվարկն ընդամենը սկիզբն է։ Երկարության ֆունկցիան բազմաթիվ հնարավորություններ է տալիս, որոնցից մեկը նորմավորումն է։ Նորմավորում նշանակում է ինչ-որ բան «ստանդարտ» կամ «նորմալ» դարձնել։ Վեկտորների դեպքում ենթադրում ենք, որ ստանդարտ վեկտորի երկարությունը 1 է։\ Հետևաբար, ցանկացած վեկտոր նորմավորելու համար պետք է այն վերցնել, դրա ուղղությունը չփոխել, երկարությունը դարձնել 1 և այդպիսով ստանալ միավոր վեկտոր։
Քանի որ միավոր վեկտորը վեկտորի ուղղությունն է նկարագրում՝ առանց երկարությանն անդրադառնալու, դրա առկայությունը շատ օգտակար է։ Հաջորդ հատվածում՝ ուժերի հետ աշխատելիս, օգտակարությունն ինքներս կտեսնենք։
Այլ կերպ ասած, վեկտորը նորմավորելու համար յուրաքանչյուր բաղադրիչ պետք է բաժանես իր նորմի վրա։ Բավականին տրամաբանական է, չէ՞։ Ենթադրենք՝ վեկտորի երկարությունը 5 է։ 5 բաժանած 5-ի հավասար է 1-ի։ Հետևաբար, եթե ուղղանկյուն եռանկյունը դիտարկենք, ներքնաձիգի մասշտաբը պետք է փոխենք՝ 5-ի բաժանելով։ Այդ ընթացքում կողերն էլ են փոքրանում և բաժանվում 5-ի։
Հետևաբար, PVector պրոյեկտում նորմավորման ֆունկցիան այսպես ենք գրում.
PVector.prototype.normalize = function() {
var m = this.mag();
this.div(m);
};
Իհարկե, մի փոքր խնդիր կա. ի՞նչ կպատահի, եթե վեկտորի նորմը 0 լինի։ Չէ՞ որ չենք կարող 0-ի բաժանել։ Դրա համար պետք է ընդամենը սխալների ստուգում կատարել։
PVector.prototype.normalize = function() {
var m = this.mag();
if (m > 0) {
this.div(m);
}
};
Այս ծրագրում միշտ նորմավորում ենք կենտրոնի հետ համեմատած դիրքը ներկայացնող վեկտորը և բազմապատկում ենք այն, որպեսզի այն տեսանելի լինի, քանի որ 1 պիքսելը շատ փոքր է։
«Բնական նմանակիչներ» դասընթացը ստեղծվել է Դանիել Շիֆմանի «Կոդի բնույթը» գրքի հիման վրա և կիրառվում է ըստ Creative Commons Attribution-NonCommercial 3,0 Unported License-ի։
Ուզո՞ւմ ես միանալ խոսակցությանը։
Առայժմ հրապարակումներ չկան։