ở đây ko ai học computer graphics hết à
chuyển về Barycentric coordinate: P = uA + vB + wC, với u + v + w = 1. Nếu P nằm trong tam giác ABC thì u,v,w >= 0. Bản chất của nó cũng y hệt kiểm tra diện tích PAB PBC PCA cộng lại có bằng diện tích ABC.
ta có 3 phương trình:
uA.x + vB.x + wC.x = P.x
uA.y + vB.y + wC.y = P.y
u + v + w = 1
3 phương trình 3 ẩn, giải ra u,v,w dễ dàng. Có u,v,w rồi thì kiểm tra xem u,v,w >= 0 hết thì P nằm trong ABC.
nhưng mỗi lần giải hệ pt vậy rất là mất công, wiki có giải sẵn:
(sao cái hình bị thu nhỏ lại vậy @_@)
tuy có phép chia nhưng nhìn kĩ thì mẫu của u và v đều giống nhau và ko liên quan tới P.x, P.y, như vậy cho tam giác ABC ta có thể tính trước 1/mẫu này. Lần kiểm tra đầu tiên cần 8 phép nhân, các lần kiểm tra sau đó chỉ cần 6 phép nhân.
SO cũng có câu hỏi này:
top answer cũng chỉ cần 6 phép nhân mà còn bị chê đòi xài Barycentric coord