Titik Potong Ray-Plane

Ray didefinisikan sebagai titik-titik p yang memenuhi persamaan:

    \[ $p = \overline{r}*t + o$ \]

Bidang didefinisikan sebagai titik-titik q yang memenuhi persamaan:

    \[ $\overline{n} \cdot (q-q_0) = 0$ \]

dengan q_0 adalah salah satu titik yang ada di bidang.

Gambar di bawah ini menggambarkan bidang (garis kuning) dengan normal \overline{n}, A sebagai titik mulai ray, B sebagai titik potong antara ray dengan bidang, C adalah salah satu titik yang diketahui sebelumnya berada di bidang(dalam persamaan di atas berarti q_0), dan D adalah titik jarak terdekat antara bidang dengan titik A.

Kita ingin mengetahui d, yang mana adalah jarak dari A ke B.

Diketahui :

  • Posisi A dan C
  • Vektor \overline{n} dan \overline{r}

Analisa:

    \begin{align*} AC &= \overline{m} \\ AD &= \overline{m} \cdot -\overline{n} \end{align*}

Segitiga ADC mempunyai sisi AD yang sama dengan segitiga ABD, sehingga:

    \begin{align*} \overline{AB} \cdot -\overline{n} &= AD \\ -||AB|| cos \Theta &= \overline{m} \cdot -\overline{n} \\ ||AB|| &= \frac{\overline{m} \cdot -\overline{n} }{ cos \Theta}, \quad cos \Theta = \overline{n} \cdot -\overline{r} \\ \end{align*}

Dengan persamaan diatas, didapat :

    \begin{equation*} d = ||AB|| = \frac{\overline{m} \cdot \overline{n}} { \overline{n} \cdot \overline{r}} \end{equation}

Perhitungan masih belum selesai. Bagaimana jika garis \overline{r} tegak lurus dengan \overline{n} ? Untuk kasus tersebut, berarti tidak ada titik potong sehingga kita perlu cek kondisi :

    \[ $\overline{n} \cdot \overline{r} == 0$ \]

dan kembalikan hasil bahwa titik potong tidak ditemukan jika kondisi tersebut benar.

Pseudocode :

Leave a Reply

Your email address will not be published. Required fields are marked *