ძირითადი მასალა
კომპიუტერული პროგრამირება
კურსი: კომპიუტერული პროგრამირება > თემა 5
გაკვეთილი 4: ვექტორები- რა არის ვექტორი
- გამოწვევა: მოხეტიალე ვექტორი
- მეტი ვექტორული მათემატიკა
- გამოწვევა: ნათელდაშნა
- ვექტორის სიდიდე & ნორმალიზაცია
- გამოწვევა: სიდიდის ვიზუალიზაცია
- ვექტორების მოძრაობა
- გამოწვევა: მანქანის დამუხრუჭება
- სტატიკური ფუნქციები თუ პირველადი მეთოდები
- გამოწვევა: სტატიკური ფუნქციები
- ინტერაქტიული ვექტორების მოძრაობა
- გამოწვევა: გავედევნოთ მაუსს
- პროექტი: კომპიუტირებული არსებები
© 2023 Khan Academyგამოყენების პირობებიკონფიდენციალურობის პოლიტიკაშენიშვნა ქუქი-ჩანაწერებზე
მეტი ვექტორული მათემატიკა
შეკრება მხოლოდ პირველი ნაბიჯი იყო. არსებობს ბევრი მათემატიკური ოპერაცია, რომლებიც, ძირითადად, ვექტორების შემთხვევაში გამოიყენება. ქვემოთ მოცემულია იმ ოპერაციების სია, რომლებსაც ProcessingJS-ის
PVector
ობიექტი გვთავაზობს ფუნქციების სახით. ახლა გადავხედავთ ძირითად ფუნქციებს. მომდევნო სექციებში ჩვენი მაგალითების გართულებასთან ერთად გავაგრძელებთ სხვა ფუნქციების დეტალების გამხელასაც.add()
— ვექტორების შეკრებაsub()
— ვექტორების გამოკლებაmult()
— ვექტორის სკალირება გამრავლებითdiv()
— ვექტორის სკალირება გაყოფითmag()
— ვექტორის სიგრძის გამოთვლაnormalize()
— ვექტორის ნორმალიზაცია ერთეულოვან სიგრძეზეlimit()
— ვექტორის სიგრძის შეზღუდვაheading2D()
— ვექტორის 2-განზომილებიანი მიმართულება, რომელიც წარმოდგენილია კუთხედdist()
— ევკლიდური მანძილი ორ ვექტორს შორის (ჩათვლილია წერტილებად)angleBetween()
— ორ ვექტორს შორის კუთხის პოვნაdot()
— ორი ვექტორის სკალარული ნამრავლიcross()
— ორი ვექტორის ვექტორული ნამრავლი (რელევანტურია მხოლოდ 3 განზომილებაში)
შეკრება უკვე გავიარეთ, ახლა დავიწყოთ გამოკლება. ეს არც ისე რთულია; უბრალოდ, აიღეთ პლიუს ნიშანი და შეცვალით ის მინუსით!
ვექტორების გამოკლება
შეიძლება, ჩაიწეროს, როგორც:
start text, w, end text, start subscript, x, end subscript, equals, start text, u, end text, start subscript, x, end subscript, minus, start text, v, end text, start subscript, x, end subscript
start text, w, end text, start subscript, y, end subscript, equals, start text, u, end text, start subscript, y, end subscript, minus, start text, v, end text, start subscript, y, end subscript
start text, w, end text, start subscript, y, end subscript, equals, start text, u, end text, start subscript, y, end subscript, minus, start text, v, end text, start subscript, y, end subscript
ასე რომ, ეს ფუნქცია
PVector
-ში გამოიყურება შემდეგნაირად:PVector.prototype.sub = function(vector2) {
this.x = this.x - vector2.x;
this.y = this.y - vector2.y;
};
შემდეგი მაგალითი აჩვენებს ვექტორების გამოკლებას ორ წერტილს შორის სხვაობის აღებით — მაუსის ადგილმდებარეობასა და ფანჯრის შუა წერტილს შორის.
საბაზისო რიცხვითი თვისებები ვექტორებით
როდესაც ნამდვილ რიცხვებზე ვაკეთებთ ოპერაციებს, ისინი იცავენ შემდეგ წესებს:
გადანაცვლებადობის წესი: 3, plus, 2, equals, 2, plus, 3
ჯუფდებადობის წესი: left parenthesis, 3, plus, 2, right parenthesis, plus, 1, equals, 3, plus, left parenthesis, 2, plus, 1, right parenthesis
ეს წესები ჭეშმარიტია ვექტორების შემთხვევაშიც:
გადანაცვლებადობის წესი: u, with, vector, on top, plus, v, with, vector, on top, equals, v, with, vector, on top, plus, u, with, vector, on top
ჯუფდებადობის წესი: u, with, vector, on top, plus, left parenthesis, v, with, vector, on top, plus, w, with, vector, on top, right parenthesis, equals, left parenthesis, u, with, vector, on top, plus, v, with, vector, on top, right parenthesis, plus, w, with, vector, on top
ვექტორების გამრავლება
გადავდივართ გამრავლებაზე და აქ ოდნავ უფრო სხვანაირად ფიქრია საჭირო. როდესაც ვექტორის გამრავლებაზე ვსაუბრობთ, ძირითადად, ვგულისხმობთ ვექტორის სკალირებას. თუ ვექტორის სკალირება გვინდა მასზე ორჯერ უფრო დიდ ან 3-ჯერ უფრო მცირე ზომაზე (მისი მიმართულების შეუცვლელად), ვიტყვით: „გაამრავლეთ ვექტორი 2-ზე“ ან „გაამრავლეთ ვექტორი 1/3-ზე“. აღვნიშნოთ, რომ ვექტორს ვამრავლებთ სკალარზე, ანუ ცალკეულ რიცხვზე, და არა — სხვა ვექტორზე.
ვექტორის სკალირებისათვის თითოეულ კომპონენტს (x-სა და y-ს) ვამრავლებთ სკალარულ სიდიდეზე.
w, with, vector, on top, equals, u, with, vector, on top, times, n
w, with, vector, on top, equals, u, with, vector, on top, times, n
შეიძლება, ჩაიწეროს, როგორც:
შევხედოთ მაგალითს ვექტორის აღნიშვნით.
ასე რომ, ფუნქცია
PVector
ობიექტში შეიძლება, შემდეგნაირად ჩაიწეროს:PVector.prototype.mult = function(n) {
this.x = this.x * n;
this.y = this.y * n;
}
და
mult
-ის გამოყენება კოდში არის ასეთი მარტივი:var u = new PVector(-3,7);
// ეს PVector-ი ახლა არის 3-ჯერ უფრო დიდი და უდრის (-9,21)-ს.
u.mult(3);
აი, ადრინდელი მაგალითი, მაგრამ ვექტორს ვამრავლებთ 0,5-ზე ყოველ ჯერზე, რათა ნახევრით დასკალირდეს:
0,5-ზე გამრავლების ნაცვლად, აგრეთვე შეგვეძლო, გაგვეყო 2-ზე. გაყოფაც ზუსტად გამრავლებასავით ხდება — უბრალოდ, გამრავლების ნიშანს (ვარსკვლავს, „*“) ვანაცვლებთ გაყოფის ნიშნით (წილადის ნიშნით, „/“).
აი, როგორ არის div მეთოდი იმპლემენტირებული:
PVector.prototype.div = function(n) {
this.x = this.x / n;
this.y = this.y / n;
}
და, აი, როგორ შეგვიძლია მისი გამოყენება კოდში:
var u = new PVector(8, -4);
u.div(2);
მეტი რიცხვითი თვისება ვექტორებით
ვექტორებზე ვრცელდება როგორც შეკრების, ასევე გამრავლების საბაზისო ალგებრული წესები.
ჯუფდებადობის წესი: left parenthesis, n, times, m, right parenthesis, times, v, with, vector, on top, equals, n, times, left parenthesis, m, times, v, with, vector, on top, right parenthesis
განრიგებადობის წესი 2 სკალარით, 1 ვექტორით: left parenthesis, n, plus, m, right parenthesis, times, v, with, vector, on top, equals, n, times, v, with, vector, on top, plus, m, times, v, with, vector, on top
განრიგებადობის კანონი 2 ვექტორით, 1 სკალარით: left parenthesis, u, with, vector, on top, plus, v, with, vector, on top, right parenthesis, times, n, equals, u, with, vector, on top, times, n, plus, v, with, vector, on top, times, n
გსურთ, ვექტორებზე ოპერაციებში ივარჯიშოთ? შეგიძლიათ, ისწავლოთ მეტი აქ, ხანის აკადემიაზე, პარაგრაფში „წრფივი ალგებრა: ვექტორები“.
ეს „ბუნებრივი სიმულაციების" კურსი ეფუძნება დანიელ შიფმენის წიგნს "კოდის ბუნებას", ის გამოყენებულია ლიცენზიით Creative Commons Attribution-NonCommercial 3,0 Unported License.
გსურთ, შეუერთდეთ დისკუსიას?
პოსტები ჯერ არ არის.