এই বিভাগে, আমরা দেখব কিভাবে C++ এ STL থেকে জটিল ক্লাস ব্যবহার করে পয়েন্ট ক্লাস করা যায়। এবং জ্যামিতি সংক্রান্ত কিছু সমস্যার উপর তাদের প্রয়োগ করুন। জটিল সংখ্যাটি STL (#include
ডিফাইনিং পয়েন্ট ক্লাস
কমপ্লেক্স থেকে পয়েন্ট করার জন্য, আমরা কমপ্লেক্সের নাম <ডবল> পয়েন্ট হিসাবে পরিবর্তন করব, তারপর জটিল ক্লাসের x-এ real() এবং কমপ্লেক্স ক্লাসের y-এ imag() পরিবর্তন করব। এইভাবে, আমরা পয়েন্ট ক্লাস সিমুলেট করতে পারি।
# include <complex> typedef complex<double> point; # define x real() # define y imag()
আমাদের মনে রাখতে হবে যে x এবং y ম্যাক্রো হিসাবে প্রয়োগ করা হয়েছে, এগুলি ভেরিয়েবল হিসাবে প্রয়োগ করা যাবে না।
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <iostream> #include <complex> using namespace std; typedef complex<double> point; #define x real() #define y imag() int main() { point my_pt(4.0, 5.0); cout << "The point is :" << "(" << my_pt.x << ", " << my_pt.y << ")"; }
আউটপুট
The point is :(4, 5)
জ্যামিতি প্রয়োগ করতে, আমরা দেখতে পারি যে উৎপত্তি থেকে P এর দূরত্ব (0, 0), এটিকে −abs(P) হিসাবে চিহ্নিত করা হয়। অক্ষ X থেকে OP দ্বারা তৈরি কোণ যেখানে O হল উৎপত্তি:arg(z)। উৎপত্তি সম্পর্কে P এর ঘূর্ণন হল P * polar(r, θ).
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <iostream> #include <complex> #define PI 3.1415 using namespace std; typedef complex<double> point; #define x real() #define y imag() void print_point(point my_pt){ cout << "(" << my_pt.x << ", " << my_pt.y << ")"; } int main() { point my_pt(6.0, 7.0); cout << "The point is:" ; print_point(my_pt); cout << endl; cout << "Distance of the point from origin:" << abs(my_pt) << endl; cout << "Tangent angle made by OP with X-axis: (" << arg(my_pt) << ") rad = (" << arg(my_pt)*(180/PI) << ")" << endl; point rot_point = my_pt * polar(1.0, PI/2); cout << "Point after rotating 90 degrees counter-clockwise, will be: "; print_point(rot_point); }
আউটপুট
The point is:(6, 7) Distance of the point from origin:9.21954 Tangent angle made by OP with X-axis: (0.86217) rad = (49.4002) Point after rotating 90 degrees counter-clockwise, will be: (-6.99972, 6.00032)