If you're seeing this message, it means we're having trouble loading external resources on our website.

თუ ვებფილტრს იყენებთ, დარწმუნდით, რომ *.kastatic.org და *.kasandbox.org დომენები არ არის დაბლოკილი.

ძირითადი მასალა

კომპიუტერული პროგრამირება

მეტი ვექტორული მათემატიკა

შეკრება მხოლოდ პირველი ნაბიჯი იყო. არსებობს ბევრი მათემატიკური ოპერაცია, რომლებიც, ძირითადად, ვექტორების შემთხვევაში გამოიყენება. ქვემოთ მოცემულია იმ ოპერაციების სია, რომლებსაც ProcessingJS-ის PVector ობიექტი გვთავაზობს ფუნქციების სახით. ახლა გადავხედავთ ძირითად ფუნქციებს. მომდევნო სექციებში ჩვენი მაგალითების გართულებასთან ერთად გავაგრძელებთ სხვა ფუნქციების დეტალების გამხელასაც.
  • add() — ვექტორების შეკრება
  • sub() — ვექტორების გამოკლება
  • mult() — ვექტორის სკალირება გამრავლებით
  • div() — ვექტორის სკალირება გაყოფით
  • mag() — ვექტორის სიგრძის გამოთვლა
  • normalize() — ვექტორის ნორმალიზაცია ერთეულოვან სიგრძეზე
  • limit() — ვექტორის სიგრძის შეზღუდვა
  • heading2D() — ვექტორის 2-განზომილებიანი მიმართულება, რომელიც წარმოდგენილია კუთხედ
  • dist() — ევკლიდური მანძილი ორ ვექტორს შორის (ჩათვლილია წერტილებად)
  • angleBetween() — ორ ვექტორს შორის კუთხის პოვნა
  • dot() — ორი ვექტორის სკალარული ნამრავლი
  • cross() — ორი ვექტორის ვექტორული ნამრავლი (რელევანტურია მხოლოდ 3 განზომილებაში)
შეკრება უკვე გავიარეთ, ახლა დავიწყოთ გამოკლება. ეს არც ისე რთულია; უბრალოდ, აიღეთ პლიუს ნიშანი და შეცვალით ის მინუსით!

ვექტორების გამოკლება

w, with, vector, on top, equals, u, with, vector, on top, minus, v, with, vector, on top
შეიძლება, ჩაიწეროს, როგორც:
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
ასე რომ, ეს ფუნქცია 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
შეიძლება, ჩაიწეროს, როგორც:
wx=uxnwy=uyn w_x = u_x * n \\ w_y = u_y * n
ვექტორის სკალირება
შევხედოთ მაგალითს ვექტორის აღნიშვნით.
u=(3,7)n=3w=unwx=33wy=73w=(9,21) \vec{u} = (-3, 7) \\ n = 3 \\ \vec{w} = \vec{u} * n \\ w_x = -3 * 3 \\ w_y = 7 * 3 \\ \vec{w} = (-9, 21)
ასე რომ, ფუნქცია 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.

გსურთ, შეუერთდეთ დისკუსიას?

პოსტები ჯერ არ არის.
გესმით ინგლისური? დააწკაპუნეთ აქ და გაეცანით განხილვას ხანის აკადემიის ინგლისურენოვან გვერდზე.