মূল বিষয়বস্তু
কম্পিউটার প্রোগ্রামিং
কোর্স: কম্পিউটার প্রোগ্রামিং > অধ্যায় 5
পাঠ 7: স্পন্দন- স্পন্দনের বিস্তার এবং সময়কাল
- চ্যালেঞ্জ: রংধনুর স্প্রিং
- কৌণিক বেগের সাথে স্পন্দন
- চ্যালেঞ্জ: মহাকাশযানের যাত্রা
- তরঙ্গ
- চ্যালেঞ্জ: বিভিন্ন তরঙ্গ
- বল এবং ত্রিকোণমিতি: দোলক
- চ্যালেঞ্জ: দোলক বা পেন্ডুলামের (Pendulum) পুতুল
- স্প্রিং বল
- প্রকল্প: প্রাণী নিয়ে বিভিন্ন কাজ
© 2023 Khan Academyব্যবহারের শর্তাদিগোপনীয়তার নীতিমালাকুকি নোটিশ
কৌণিক বেগের সাথে স্পন্দন
বাস্তব জগতের সিমুলেশন তৈরির জন্য স্পন্দন (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 আনপোরটেড লাইসেন্সের অধিনস্ত।
আলোচনায় অংশ নিতে চাও?
কোন আলাপচারিতা নেই।