Cho 2 điểm M(x0,y0)
và N(x1,y1). Lập trình kiêm tra điểm M và N đã cho cùng
phía hay khác phía so với đường thẳng đi qua 2 điểm A(x2,y2)
và B(x3,y3).
Dữ liệu vào:
-
Dòng
đầu gồm 4 số x0 , y0 là tọa độ điểm M và x1 , y1 là tọa độ điểm N
-
Dòng
thứ gồm 4 số lần lượt là hoành độ và tung độ của 2 điểm A và B
Dữ liệu ra: ghi “cung phia” hay “khong cung phia”
Hướng dẫn:
Trước
tiên xác định phương trình đường thẳng đi qua hai điểm A(x2,y2)
và B(x3,y3):
Phương trình tổng quát của đường thẳng
có dạng: Ax + By + C = 0 (A2 + B2 <>0)
Hệ số A: y2-y3
Hệ số B: x3-x2
Hệ số C: x2y3-x3y2
Vậy
phương trình qua A(x2,y2) và B(x3,y3)
sẽ là (x2-y3)x + (x3-x2)y + (x2y3-x3y2)=0
Đặt F(x,y)= (x2-y3)x + (x3-x2)y
+ (x2y3-x3y2)
Khi thay tọa độ điểm M vào F thì giá trị
F nhận được có thể bé hơn 0, lớn hơn 0 hoặc bằng
0 (trường hợp này M thuộc đường thẳng d) tương ứng với 3 vị trí.
Do đó, M(x0,y0) và N(x1,y1)
cùng phía với nhau khi và chỉ khi F(x0,y0). F(x1,y1)<0