Posisi awal titik di antara titik-titik segitiga
secara teori untuk mengecek apakah sebuahh titik berada di tengah-tengah segitiga maka tariklah garis dari masing-masing titik segitga sampai memotong garis segitga yang berhadapan dengan titik tersebut melalui titik yang akan dicek apakah di dalam segitiga. atau tariklah garis dari titik p1 ke p sampau memotong garis p2p3, begitu pula tarik garis dari titik p2 ke p sampai memotong p1p3 dan tariklah garis dari titik p3 ke p sampai memotong garis p1p2, seperti digambarkan sebagai berikut :
di tarik garis dari sudut segitiga melalui titik yang akan dicek sampai memotong garis segitga yang berhadapan.
dari konsep di atas maka untuk memastikan titik tersebut di dalam segitiga maka logikanya adalah
- Jika garis p1a > p1p
- Jika garis p2b > p2p
- Jika garis p3c > p3p
jika dituangkan dalam bahasa pemrograman delphi maka
function InTriangle(const x,y,x1,y1,x2,y2,x3,y3:real):boolean; var a,b,c:boolean; begin a:=sqr((y2-y1)*(x3-x2)+(y3-y2)*(x1-x2))>=sqr((y-y1)*(x3-x2)-(y3-y2)*(x-x1)); b:=sqr((y3-y2)*(x1-x3)+(y1-y3)*(x2-x3))>=sqr((y-y2)*(x1-x3)-(y1-y3)*(x-x2)); c:=sqr((y1-y3)*(x2-x1)+(y2-y1)*(x3-x1))>=sqr((y-y3)*(x2-x1)-(y2-y1)*(x-x3)); result:=a and b and c; end;
Tidak ada komentar:
Posting Komentar