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

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

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

কৌণিক বেগের সাথে স্পন্দন

বাস্তব জগতের সিমুলেশন তৈরির জন্য স্পন্দন (oscillation), বিস্তার (amplitude) এবং কম্পাঙ্ক/পর্যায়কাল (frequency/period) সম্পর্কে জানা খুবই গুরুত্বপূর্ণ। কিন্তু, একই ফলাফল সহ উপরের উদাহরণটি আরও সহজভাবে লেখা যায়। স্পন্দনের সূত্রটি আরেকবার দেখি:
var x = amplitude * sin(TWO_PI * frameCount / period);
এবার এটাকে একটু পরিবর্তন করি:
var x = amplitude * sin(কোন মান যা ধীরে বৃদ্ধি পায়);
ফ্রেমের অ্যানিমেশনের উপর ভিত্তি করে আমরা যদি স্পন্দনের পর্যায়কাল (period) সংজ্ঞায়িত করি, তাহলে আমাদের আগের সূত্রটিই লাগবে, কিন্তু আমরা উদাহরণটিতে কৌণিক গতির অনুশীলনী থেকে জানা কৌণিক বেগ (angular velocity) (এবং ত্বরণ-acceleration) ব্যবহার করতে পারি। ধরি:
var angle = 0;
var aVelocity = 0.03;
...draw() এ, আমরা সহজভাবে কোড করতে পারি:
angle += aVelocity;
var x = amplitude * sin(angle);
...যেখানে angle হল “কোন মান যা ধীরে বৃদ্ধি পায়।”
এই হল আমাদের পরিবর্তিত প্রোগ্রাম: 
এই কোডে আমরা পর্যায়কাল (period) -কে উল্লেখ করছি না, কিন্তু তার মানে এই নয় যে আমরা এটার ধারণা বাদ দিয়ে দিয়েছি। কারণ, কৌণিক বেগ যত বেশি হবে, বৃত্তটি তত বেশি স্পন্দিত হবে (ফলশ্রুতিতে পর্যায়কাল কমে আসবে)। আসলে, TWO_PI হওয়ার জন্য যতবার কৌণিক বেগ (angular velocity) যোগ করতে হয় সেই সংখ্যাটিই হল পর্যায়কাল অথবা:
period (পর্যায়কাল) = TWO_PI / angular velocity (কৌণিক বেগ)
এখন এই উদাহরণটিতে একটি Oscillator (স্পন্দনশীল) অবজেক্ট তৈরি করি। ধরি, স্পন্দন যেন উভয় x-অক্ষ (উপরের মত) এবং y-অক্ষ বরাবর হয়। এটা করার জন্য, আমাদের দুইটি কোণের প্রয়োজন, দুইটি কৌণিক বেগ এবং দুইটি বিস্তার (প্রত্যেক অক্ষের জন্য একটি)। আরেকবার PVector ব্যবহারের সুবর্ণ সুযোগ!
নিচে প্রোগ্রামটির কোড দেওয়া হল:

এই "প্রাকৃতিক সিমুলেশন" কোর্সটি নেওয়া হয়েছে Daniel Shiffman (ড্যানিয়েল শিফম্যান) এর লেখা "The Nature of Code" (কোডের প্রকৃতি) থেকে এবং এটি ক্রিয়েটিভ কমন্সের এট্রিবিউশন-নন কমার্শিয়াল 3.0 আনপোরটেড লাইসেন্সের অধিনস্ত।