Beranda

Sabtu, 22 November 2014

Cara mengecek apakah sebuah titik di dalam segitiga atau tidak menggunakan Delphi

script berikut adalah contoh bagaimana cara mengecek sebuah titik apakah berada di dalam area lingkaran atau berada di luar lingkaran.


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


  1. Jika garis p1a > p1p

  2. Jika garis p2b > p2p

  3. 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