Computer >> Máy Tính >  >> Lập trình >> C ++

Hình học sử dụng Số phức trong C ++

Trong phần này, chúng ta sẽ xem cách tạo lớp điểm bằng cách sử dụng lớp phức hợp từ STL trong C ++. Và áp dụng chúng vào một số bài toán liên quan đến hình học. Số phức có trong lớp phức từ STL (#include )

Xác định lớp điểm

Để tạo phức thành điểm, chúng ta sẽ thay đổi tên của phức thành điểm, sau đó đổi x thành real () của lớp phức và y thành image () của lớp phức. Do đó, chúng ta có thể mô phỏng lớp điểm.

# include <complex>
typedef complex<double> point;
# define x real()
# define y imag()

Chúng tôi phải lưu ý rằng x và y đã được áp dụng dưới dạng macro, chúng không thể được áp dụng dưới dạng biến.

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#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 << ")";
}

Đầu ra

The point is :(4, 5)

Để áp dụng hình học, chúng ta có thể thấy rằng khoảng cách của P từ điểm gốc (0, 0), được ký hiệu là −abs (P). Góc tạo bởi OP từ trục X với O là gốc:arg (z). Phép quay của P về gốc tọa độ là P * cực (r, θ).

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#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);
}

Đầu ra

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)