Ana içeriğe geç

Kapsül (Capsule)

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 kapsülün 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), kapsülün yüzeyine olan uzaklığını noktanın olası üç ayrı konumu için hesaplamamız gerekiyor.

Example banner

Yeşil Bölge

P noktasının, (0, h, 0) noktasına olan uzaklığınıdan kapsülün yarı çapını (r) çıkarak hesaplayabiliriz.
P ile (0,h, 0) arasındaki mesafe (Px, Py - h, Pz) vektörünün uzunluğu ile eşit olduğu için bu hesabı kısaca şu şekilde elde edebiliriz:

P.y -= h;
length(P) - r;

Mavi Bölge

(0, -h, 0) noktası üzerinden yeşil bölge ile benzer bir şekilde hesaplanabilir. Bu durumda şunu elde ediyoruz:

P.y += h;
length(P) - r;

Kırmızı Bölge

Buradaki hesaplama için Sonsuz Silindir için kullanılan yöntemi kullanabiliriz. Bu durumda şunu elde ediyoruz:

P.y = 0;
length(P) - r;

Üç Ayrı Durumun Birleştirilmesi

clamp fonksiyonu ile Py değeri -h ve +h değeri arasına sıkıştırılıp yukarıdaki 3 ayrı durumu sağlayabilecek şekilde şunu elde edebiliriz:

P.y -= clamp( P.y , -h, h);
length(P) - r;

Canlı Örnek