Ana içeriğe geç

Sonsuz Silindir (Infinite Cylinder)

Dikkat

Eğer graphic notlarımı ilk defa okuyorsanız. İlk önce Giriş belgesini okumanızı tavsiye ederim.

Not
  • Hesaplamayı kolaylaştırmak için silindirin merkezinin orijin noktasında olduğunu ve Y ekseni üzerinde yükseldiğini varsayıyoruz.
  • Farklı bir eğimde sonuç elde etmek için P noktası üzerinde dönüşüm işlemleri yapılabilir.

Hesaplanması

Noktanın (P), silindirin yüzeyine olan uzaklığını hesaplamamız gerekiyor.
Bunun için ise önce noktanın Y eksenine olan uzaklığına ihtiyacımız var ve bunu hipotenüs sayesinde şu şekilde hesaplayabiliriz:

Px2+Pz2 \sqrt{P_{\color{red}x}^2 + P_{\color{blue}z}^2}

GLSL'de bu değeri length(P.xz) ile elde edebiliriz.
Son olarak bu sonuçtan silindirin yarı çapını (r) çıkarırsak yüzeye olan uzaklığı hesaplamış oluruz.
Sonuç olarak şuna ulaşıyoruz:

length(P.xz) - r
Silindirin işaretli mesefa fonksiyonun açıklmasına yardımcı olmak için bir görsel.

Solda XY düzlemi, sağda XZ düzleminden bir kesit görünüyor.

Canlı Örnek