თუ თქვენ ხედავთ ამ შეტყობინებას, ესე იგი საიტზე გარე რესურსების ჩატვირთვისას მოხდა შეფერხება.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

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

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

შეკრება მხოლოდ პირველი ნაბიჯი იყო. არსებობს ბევრი მათემატიკური ოპერაცია, რომლებიც, ძირითადად, ვექტორების შემთხვევაში გამოიყენება. ქვემოთ მოცემულია იმ ოპერაციების სია, რომლებსაც 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.

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

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