Trong bài toán này, chúng ta cho một điểm P trong mặt phẳng 2-D và các điểm a, b, cof có phương trình ax + by + c =0. Nhiệm vụ của chúng ta là tìm hình ảnh phản chiếu của mặt phẳng 2-D điểm.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào
P = (2, 1), a = 1, b = -1, c = 0
Đầu ra
(1, 2)
Giải thích
Máy bay trông giống như,
Phương pháp tiếp cận giải pháp
Để giải bài toán, ta cần tìm phương trình điểm P 'có tọa độ (x', y '). Vì vậy, chúng ta có R, trung điểm nơi đường thẳng P - P 'cắt đường gương.
Đường thẳng P-R-P 'vuông góc với gương. Do đó, phương trình của đường sẽ là,
ay - by + d = 0
Các điểm là P (x, y); P '(x', y '); R (xm, ym).
Các điểm P và R đã biết. Vì vậy, sử dụng các phương trình, chúng ta sẽ tìm thấy P ’là,
$$ \ left (\ frac {?? '- ??} {??} \ right) =\ left (\ frac {??' - ??} {??} \ right) =\ left (\ frac { ???? - ???? + ??} {?? ^ 2 + x ^ 2} \ right) $$
Chương trình minh họa hoạt động của giải pháp của chúng tôi,
Ví dụ
#include <iostream> using namespace std; void findMirrorImage( double a, double b, double c, double x, double y){ double points = -2 * (a * x + b * y + c) / (a * a + b * b); double xm = points * a + x; double ym = points * b + y; cout<<"("<<xm<<","<<ym<<")"; } int main(){ double a = -1.0; double b = 1.0; double c = 0.0; double x = 1.0; double y = 0.0; cout<<"Image of point ("<<x<<", "<<y<<") using mirror ("<<a<<")x + ("<<b<<")y + ("<<c<< ") = 0, is :"; findMirrorImage(a, b, c, x, y); return 0; }
Đầu ra
Image of point (1, 0) using mirror (-1)x + (1)y + (0) = 0, is :(0,1)