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

তোমার যদি কোন ওয়েব ফিল্টার দেওয়া থাকে, তাহলে দয়া করে নিশ্চিত কর যে *.kastatic.org এবং *.kasandbox.org ডোমেইনগুলো উন্মুক্ত।

মূল বিষয়বস্তু

কণা ব্যবস্থার প্রক্রিয়া

এক মুহূর্তের জন্য আলোচনা করে দেখা যাক যে আমরা কোথায় আছি। এখন আমরা পৃথকভাবে Particle (কণা) অবজেক্ট নিয়ে আলোচনা করতে পারি। আমরা Particle অবজেক্টের ব্যবস্থা নিয়েও আলোচনা করতে পারি এবং আমরা এটাকে “কণা ব্যবস্থা” (particle system) বলি। কণা ব্যবস্থাকে আমরা - কিছু স্বাধীন অবজেক্টের সংগ্রহ হিসেবে সংজ্ঞায়িত করেছি। কিন্তু কণা ব্যবস্থা নিজে কি একটি অবজেক্ট নয়? যদি তাই হয়, তাহলে অনেকগুলো কণা ব্যবস্থা থাকতে পারে, যেটাকে বলা যেতে পারে ব্যবস্থার মধ্যে থাকা একটি ব্যবস্থা।
এই ধরনের চিন্তা ভাবনা আমাদের আরও দূরে নিয়ে যেতে পারে আর দিনের পর দিন আমরা এই ব্যবস্থা নিয়ে চিন্তা করতেই থাকতে পারি। অবশ্যই। এভাবেই পুরো বিশ্ব কাজ করে থাকে। একটি অঙ্গ হল অনেকগুলো কোষব্যবস্থার সমষ্টি, একটি মানব শরীর হল অনেকগুলো অঙ্গব্যবস্থার সমষ্টি, একটি লোকালয় হল অনেকগুলো মানব শরীরের সমষ্টি, একটি শহর হল অনেকগুলো লোকালয় ব্যবস্থার সমষ্টি এবং এরকমভাবে আরও উদাহরণ দেওয়া সম্ভব। এই জিনিসগুলো মজার হলেও, আমাদের এখন এই বিষয় নিয়ে চিন্তা করার দরকার নেই। তবুও এমন একটি প্রোগ্রাম তৈরি করা শেখা উপকারী হবে যার মাধ্যমে অনেকগুলো কণা ব্যবস্থা নিয়ন্ত্রণ করা যায়, যে কণা ব্যবস্থা আবার অনেকগুলো কণাকে নিয়ন্ত্রণ করতে পারবে। নিচের দৃশ্যপটটি নেওয়া যাক:
  • একটি ফাঁকা পর্দা নিয়ে কাজ শুরু করি।
  • মাউস ক্লিকের মাধ্যমে, মাউস যেখানে অবস্থান করছে সেখানে একটি কণা ব্যবস্থা উৎপন্ন হবে।
  • যতবার মাউস ক্লিক করা হবে ততবার মাউসের অবস্থানে একটি করে নতুন কণা ব্যবস্থা তৈরি হবে।
নিজে থেকেই চেষ্টা করে দেখা যাক:
আমরা কোডের মাধ্যমে কীভাবে কাজটি করবো? আগের প্রবন্ধে চলক ps এ আমরা একটি ParticleSystem অবজেক্ট সংরক্ষণ করেছিলাম।
var ps = new ParticleSystem(new PVector(width/2, 50));

draw = function() {
  background(50, 50, 50);
  ps.addParticle();
  ps.run();
};
এখন আমাদের কাছে অনেকগুলো ব্যবস্থা আছে, একটি সংখ্যা যেটা সবসময় বেড়েই চলেছে, আমরা আলাদা নামের চলকে এই ব্যবস্থাগুলো সংরক্ষণ করতে চাই না। তার পরিবর্তে এই ব্যবস্থাটি নিয়ন্ত্রণ করার জন্য আমরা একটি অ্যারে ব্যবহার করবো। আমরা প্রোগ্রামটি শূন্য থেকে শুরু করবোঃ
var systems = [];
যখনই মাউসের বাটনটি চাপা হচ্ছে, একটি নতুন ParticleSystem (কণা ব্যবস্থা) অবজেক্ট তৈরি হচ্ছে এবং অ্যারেতে সংযুক্ত হয়ে যাচ্ছেঃ
mousePressed = function() {
  systems.push(new ParticleSystem(new PVector(mouseX, mouseY)));
};
আর draw() তে একটি ParticleSystem অবজেক্ট উল্লেখ করার পরিবর্তে, আমরা অ্যারেতে থাকা সবগুলো ব্যবস্থা দেখব এবং প্রতিটি ব্যবস্থার জন্য run() কল করবো।
draw = function() {
  background(50, 50, 50);
  for(var i = 0; i < systems.length; i++){
    systems[i].addParticle();
    systems[i].run();
  }
};
আমাদের লেখা কোড ব্যবহার করে নিজে নিজে চেষ্টা করে দেখা যাকঃ