TÌM GIAO ĐIỂM CỦA HAI ĐƯỜNG THẲNG




Cho hai đường thẳng có phương trình tổng quát: a1x+b1+c1=0 và a2+b2+c2=0
Dữ liệu vào: gồm 2 dòng, mỗi dòng gồm 3 số a, b, c là ba hệ số của đường thẳng thứ i.
Dữ liệu ra: nếu 2 đường thẳng đã cho cắt nhau ghi tọa độ của điểm giao, nếu trùng nhau ghi “trung nhau” hoặc song song nhau thì ghi “song song”


Hai đường thẳng:
d1:  a1x+b1y+c1=0 
d2:  a2x+b2y+c2=0
Đặt D=a1.b2-a2.b1, Dx=b1.c2-b2.c1, Dy=c1.a2-c2.a1
Code tham khảo: LINE.PAS
Continue Reading

KIỂM TRA HAI ĐIỂM M VÀ N CÓ CÙNG PHÍA HAY KHÔNG SO VỚI ĐƯỜNG THẲNG QUA HAI ĐIỂM A VÀ B



Cho 2 điểm M(x­0,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(x­0,y0) và N(x1,y1) cùng phía với nhau khi và chỉ khi F(x­0,y0). F(x1,y1)<0
Continue Reading

KIỂM TRA ĐA GIÁC CÓ PHẢI ĐA GIÁC LỒI HAY KHÔNG?




Cho đa giác gồm N đỉnh, kiểm tra đa giác có phải đa giác lồi hay không.
Dữ liệu vào:
·        -Dòng đầu chứa số N
·        - N dòng tiếp theo, mỗi dòng gồm 2 số là hoành độ x và tung độ y của các đỉnh
Dữ liệu ra: ghi “Da giac loi” hoặc “Da giac khong loi”
Hướng dẫn:
- Đa giác lồi là đa giác mà toàn bộ đa giác đó nằm về cùng 1 phía của một cạnh bất kì của đa giác.
- Điều kiện để một đa giác là đa giác lồi: mỗi cạnh nối đỉnh i trong N đỉnh với đỉnh i+1 (đỉnh N+1 coi như đỉnh số 1) thì mọi đỉnh j trong N đỉnh và đỉnh i+2 phải cùng phía so với đường thẳng chưa cạnh (i,i+1)
-Xem kiểm tra cùng phía Kiểm tra cùng phía
Code tham khảo:DAGIACLOI.PAS
Continue Reading

VỊ TRÍ CỦA ĐIỂM SO VỚI ĐA GIÁC



Cho ña giaùc goàm N ñænh (D[1..n]) vaø ñieåm M. Kieåm tra xem M coù thuoäc ña giaùc ñaõ cho hay khoâng

Döõ lieäu vaøo: Doøng ñaàu tieân goàm soá N – soá ñænh cuûa ña giaùc, N doøng tieáp theo moãi doøng goàm 2 soá x vaø y laø toïa ñoä moãi ñænh, doøng cuoái cuøng laø toïa ñoä ñieåm M (x0,y0).

Döõ lieäu ra: ghi soá 1 hoaëc soá 0 töông öùng laø thuoäc hoaëc khoâng thuoäc ña giaùc ñaõ cho.

Höôùng daãn:
-Hieån nhieân laø neáu M thuoäc baát kì caïnh naøo cuûa ña giaùc thì M thuoäc ña giaùc ñoù.
-Ngöôïc laïi, ta keû ñoaïn thaúng MN song song vôùi truïc hoaønh sao cho hoaønh ñoä cuûa N lôùn hôn hoaønh ñoä lôùn nhaát trong N ñænh, töùc laø max(x1..N). Ta ñi tìm giao ñieåm caùc caïnh cuûa ña giaùc vôùi ñoaïn thaúng MN, neáu soá giao ñieåm laø chaün thì M naèm ngoaøi ña giaùc coøn ngöôïc laïi M thuoäc mieàn ña giaùc.
-Thöû xeùt moät caïnh baát kì cuûa ña giaùc, laø caïnh (D[i],D[i+1] ), ta taêng soá löôïng giao ñieåm leân trong caùc tröôøng hôïp sau:
      1. Ñænh D[i] khoâng thuoäc MN, ñænh D[i+1] thì thuoäc MN, hai ñænh D[i] vaø D[i+2] naèm khaùc phía so vôùi MN.




      2. ñænh D[i-1] vaø D[i+2] naèm ngoaøi MN, hai ñænh D[i] vaø D[i+1] thuoäc MN, hai ñænh D[i-1] vaø D[i+2] khaùc phía so vôùi MN.




      3. ñænh D[i] vaø D[i+1] khoâng thuoäc MN vaø caïnh (D[i],D[i+1]) caét MN.




Continue Reading
 
CẢM ƠN CÁC BẠN ĐÃ XEM !!! ×