মূল বিষয়বস্তু
কম্পিউটার প্রোগ্রামিং
কোর্স: কম্পিউটার প্রোগ্রামিং > অধ্যায় 5
পাঠ 4: ভেক্টর- ভেক্টর সম্পর্কে প্রাথমিক ধারণা
- চ্যালেঞ্জ: ভেক্টর চলা
- ভেক্টর সম্পর্কিত গাণিতিক সমস্যা
- চ্যালেঞ্জ: লাইটসেবার
- ভেক্টর বিস্তার এবং নরমালাইজেশন
- চ্যালেঞ্জ: মান দৃষ্টিগোচর করা
- ভেক্টর গতি
- চ্যালেঞ্জ: ব্রেক করা গাড়ি
- স্ট্যাটিক ফাংশন বনাম উদাহরণস্বরূপ পদ্ধতি
- চ্যালেঞ্জ: স্ট্যাটিক (static) ফাংশন
- ইন্টার্যাক্টিভ ভেক্টর গতি
- চ্যালেঞ্জ: মাউস অনুসরণকারী
- প্রকল্প: কম্পিউটেশোনাল প্রাণি
© 2023 Khan Academyব্যবহারের শর্তাদিগোপনীয়তার নীতিমালাকুকি নোটিশ
ভেক্টর সম্পর্কিত গাণিতিক সমস্যা
যোগ করা ছিল প্রথম ধাপ। ভেক্টরে অনেক ধরনের গাণিতিক প্রক্রিয়া ব্যবহার করা হয়। ProcessingJS এর
PVector
অবজেক্টের ফাংশনের প্রক্রিয়াসমূহের একটি বিস্তৃত তালিকা নিচে দেওয়া হল। এখানে মূলত দরকারি ফাংশনগুলো দেখবো। পরবর্তীতে আরও পরিশীলিত উদাহরণে, আমরা এই ফাংশনগুলো সম্পর্কে আরও বিস্তারিতভাবে জানবো।add()
— ভেক্টর যুক্ত করsub()
— ভেক্টর বিয়োগ করাmult()
— ভেক্টর গুণ করাdiv()
— ভাগ করার মাধ্যমে ভেক্টর পরিমাপ করmag()
— ভেক্টরের মান বের করাnormalize()
— ভেক্টরকে এক (1) একক ভেক্টরে নরমালাইজ করাlimit()
— ভেক্টরের মান সীমাবদ্ধ করাheading2D()
— ভেক্টরের 2D (দ্বিমাত্রিক) শীর্ষবিন্দুকে কোণ হিসেবে প্রকাশ করাdist()
— দুইটি ভেক্টরের মধ্যে থাকা ইউক্লিডিয়ান দূরত্ব (বিন্দু হিসেবে বিবেচনা করে)angleBetween()
— দুইটি ভেক্টরের মাঝে থাকা কোণটি খুঁজে বের করdot()
— দুইটি ভেক্টরের ডট গুণন/স্কেলার গুণনcross()
— দুইটি ভেক্টরের ক্রস গুণন/ভেক্টর গুণন (ত্রিমাত্রিক বিবেচনা করে)
যেহেতু আমরা যোগ করার প্রক্রিয়া শেষ করেছি, এখন বিয়োগ করা শিখি। আসলে এটা কঠিন নয়; শুধু যোগ চিহ্নটির বদলে বিয়োগ চিহ্ন বসাই!
ভেক্টর বিয়োগ
এটাকে এভাবে লেখা যায়:
and so the function inside
PVector
looks like:PVector.prototype.sub = function(vector2) {
this.x = this.x - vector2.x;
this.y = this.y - vector2.y;
};
নিচের উদাহরণে দুইটি বিন্দুর পার্থক্য নিয়ে ভেক্টর বিয়োগ দেখানো হল—মাউসের অবস্থান এবং উইন্ডোর কেন্দ্রবিন্দু।
ভেক্টরে মৌলিক সংখ্যার বৈশিষ্ট্য
বাস্তব সংখ্যা দিয়ে গাণিতিক হিসাব করলে, তারা নিম্নের মৌলিক নীতি অনুসরণ করে:
বিনিময় বিধি:
সংযোগ বিধি:
ভেক্টরের ক্ষেত্রেও নীতিগুলো একই:
বিনিময় বিধি:
সংযোগ বিধি:
ভেক্টর গুণন
ভেক্টর গুণ করার ক্ষেত্রে, আমাদের একটু ভিন্নভাবে চিন্তা করতে হবে। ভেক্টর গুণনের ক্ষেত্রে মূলত বোঝায়, একটি ভেক্টরকে স্কেলিং করা। একটি ভেক্টরকে এর আকারের দ্বিগুণ অথবা তিনভাগের একভাগে পরিণত করতে চাইলে (এটার দিক পরিবর্তন না করে), যা করতে হবে: “ভেক্টরকে 2 দিয়ে গুণ” অথবা “ভেক্টরকে 1/3 দিয়ে গুণ।” লক্ষ্য করি, একটি ভেক্টরকে স্কেলার রাশি দিয়ে গুণ করা হচ্ছে, এটা একটি সংখ্যা, কিন্তু ভেক্টর রাশি নয়।
একটি ভেক্টরকে স্কেল (পরিমাপ) করার জন্য, প্রত্যেকটি অংশকে (x এবং y) স্কেলার রাশি দিয়ে গুণ করতে হয়।
এভাবে লেখা যায়:
ভেক্টর চিহ্ন সম্বলিত একটি উদাহরণ দেখা যাক।
Therefore, the function inside the
PVector
object is written as:PVector.prototype.mult = function(n) {
this.x = this.x * n;
this.y = this.y * n;
}
এবং সহজেই কোডে
mult
ব্যবহার করা যায়:var u = new PVector(-3,7);
// এই PVector এখন তিনগুন বড় এবং এটা (-9,21) এর সমান।
u.mult(3);
Here's the example from earlier, but we multiply the vector by 0.5 each time, so that it's scaled by half:
উপরে 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);
More Number Properties with Vectors
যোগের মত, বীজগণিতের গুণন পদ্ধতিও ভেক্টরে ব্যবহার করা যায়।
সংযোগ বিধি:
The distributive rule with 2 scalars, 1 vector:
2 টি স্কেলার, 1 টি ভেক্টর সহ বণ্টন বিধি:
ভেক্টরের গণিত অনুশীলন করতে চাও? খান একাডেমিতে আমাদের রৈখিক বীজগণিত: ভেক্টর থেকে তুমি আরও অনেক কিছু শিখতে পার।
এই "প্রাকৃতিক সিমুলেশন" কোর্সটি নেওয়া হয়েছে Daniel Shiffman (ড্যানিয়েল শিফম্যান) এর লেখা "The Nature of Code" (কোডের প্রকৃতি) থেকে এবং এটি ক্রিয়েটিভ কমন্সের এট্রিবিউশন-নন কমার্শিয়াল 3.0 আনপোরটেড লাইসেন্সের অধিনস্ত।
আলোচনায় অংশ নিতে চাও?
কোন আলাপচারিতা নেই।