2010-07-25 11 views
6

Temel olarak, bir el feneri gibi ışığı yansıtma ve bir nokta olup olmadığını kontrol etme - Sadece bir nokta için kontrol etmem gerekiyor, ama birden fazla kontrol edememek zarar vermez - onun tarafından aydınlatılan veya olmayan alanda .Algoritma ışığı yansıtıp belirli bir noktanın içine düştüğünü tespit etmek için?

Ayrıca, çoğu (tüm?) Algoritmaların 2B/3B'de çalıştığını, ancak N boyutlu bir alanda çalışan birisinin kullanılabileceğini mi varsayıyorum? Sadece makul bir karmaşıklığa sahip rastgele bir sayı için kullanılabilirse ilgilenirim.

+0

Işığın vurmak zorunda olduğumuz geometri var mıdır, yoksa boş bir alanda mıdır ve n-boyutlu bir koni içinde bir noktanın olup olmadığını belirlemek mi istiyorsunuz? –

+0

@John Kugelman: Sadece düğümler ve ışık konileri, yani geometri yok. Ancak ışık konileri üst üste gelemez, bu yüzden komşu koniler "dokunma" durumunda, bunların arasında bir "çizgi" olduğunu düşünmem gerekir. Her bir koordinat daha kolay hale gelirse [-1,1] aralığında göz önüne alınabilir. – gendum

+0

olası bir kopyası [Bir noktanın daire içinde olup olmadığını nasıl test edersiniz?] (Http://stackoverflow.com/questions/481144/how-do-you-test-if-a-point-is-inside-a -circle) –

cevap

2

Eğer Pp ışık konisinin, Pl bir ışık ve test noktası yönünde işaret normalleştirilmiş vektör n var varsayarsak, ve yarım koni açısı theta, sen bağımsız böyle testi (yapabilir senin uzayın boyutu):

İşte
vector Vl = Pl + n 
vector Vp = Pp - Pl 

phi = acos(dot(Vl, Vp)/(||Vl|| * ||Vp||)) 

if phi <= theta 
    p in light cone 
else 
    p not in light cone 

(dot a, b) iki vektör (a1 * b1 + ... + an * bn) ve || bir nokta ürünü || vektör a, sqrt (a1 * a1 + ... + an * an) 'nın büyüklüğündedir.

Temel fikir, ışık demetinin merkez çizgisi ile ışık kaynağındaki vektörün ilgi alanı arasındaki açıyı belirlemektir. Bu açı spot ışığın (yarım) açından daha büyükse, ilgilenilen nokta kirişin dışındadır - aksi takdirde içinde.

Gerçek ışıkların çok keskin bir şekilde kesilmediğini unutmayın, ancak bu başlamanızı sağlayacaktır.

İlgili konular