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=uv
შეიძლება, ჩაიწეროს, როგორც:
wx=uxvx
wy=uyvy
ასე რომ, ეს ფუნქცია PVector-ში გამოიყურება შემდეგნაირად:
PVector.prototype.sub = function(vector2) {
    this.x = this.x - vector2.x;
    this.y = this.y - vector2.y;
  };
შემდეგი მაგალითი აჩვენებს ვექტორების გამოკლებას ორ წერტილს შორის სხვაობის აღებით — მაუსის ადგილმდებარეობასა და ფანჯრის შუა წერტილს შორის.
საბაზისო რიცხვითი თვისებები ვექტორებით
როდესაც ნამდვილ რიცხვებზე ვაკეთებთ ოპერაციებს, ისინი იცავენ შემდეგ წესებს:
გადანაცვლებადობის წესი: 3+2=2+3
ჯუფდებადობის წესი: (3+2)+1=3+(2+1)
ეს წესები ჭეშმარიტია ვექტორების შემთხვევაშიც:
გადანაცვლებადობის წესი: u+v=v+u
ჯუფდებადობის წესი: u+(v+w)=(u+v)+w

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

გადავდივართ გამრავლებაზე და აქ ოდნავ უფრო სხვანაირად ფიქრია საჭირო. როდესაც ვექტორის გამრავლებაზე ვსაუბრობთ, ძირითადად, ვგულისხმობთ ვექტორის სკალირებას. თუ ვექტორის სკალირება გვინდა მასზე ორჯერ უფრო დიდ ან 3-ჯერ უფრო მცირე ზომაზე (მისი მიმართულების შეუცვლელად), ვიტყვით: „გაამრავლეთ ვექტორი 2-ზე“ ან „გაამრავლეთ ვექტორი 1/3-ზე“. აღვნიშნოთ, რომ ვექტორს ვამრავლებთ სკალარზე, ანუ ცალკეულ რიცხვზე, და არა — სხვა ვექტორზე.
ვექტორის სკალირებისათვის თითოეულ კომპონენტს (x-სა და y-ს) ვამრავლებთ სკალარულ სიდიდეზე.
w=un
შეიძლება, ჩაიწეროს, როგორც:
wx=uxnwy=uyn
ვექტორის სკალირება
შევხედოთ მაგალითს ვექტორის აღნიშვნით.
u=(3,7)n=3w=unwx=33wy=73w=(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);

მეტი რიცხვითი თვისება ვექტორებით

ვექტორებზე ვრცელდება როგორც შეკრების, ასევე გამრავლების საბაზისო ალგებრული წესები.
ჯუფდებადობის წესი: (nm)v=n(mv)
განრიგებადობის წესი 2 სკალარით, 1 ვექტორით: (n+m)v=nv+mv
განრიგებადობის კანონი 2 ვექტორით, 1 სკალარით: (u+v)n=un+vn
გსურთ, ვექტორებზე ოპერაციებში ივარჯიშოთ? შეგიძლიათ, ისწავლოთ მეტი აქ, ხანის აკადემიაზე, პარაგრაფში „წრფივი ალგებრა: ვექტორები“.

ეს „ბუნებრივი სიმულაციების" კურსი ეფუძნება დანიელ შიფმენის წიგნს "კოდის ბუნებას", ის გამოყენებულია ლიცენზიით Creative Commons Attribution-NonCommercial 3,0 Unported License.

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

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