Parametrik bir yüzey f : R^2 --> R^3
ve üçgen şeklinde bir ağ arasındaki kesişme yüzeyinin sınırını hesaplamak için kesin bir algoritmanın nasıl yazılabileceğini merak ediyorum.Parametrik yüzeyli bir ağın kesişimi
Ben ilk yaklaşıma düşünmüşümdür:
nStepsU = 100
nStepsV = 100
tolerance=0.01 // pick some sensical value
intersectionVertices={}
for u from minU to maxU in nStepsU:
for v from minV to maxV in nStepsV:
for v in verticesInMesh:
if euclidean distance(f(u,v), v) < tolerance:
add vertex v in a set
connect the vertices in intersectionVertices with a line strip
draw the vertices in intersectionVertices
, Bu algoritma (n^3) çok basit ama yavaş ve meş topografya üçgenler dayandığını hesapta tutmaz böylece Çıktı noktaları, kafesin noktalarıdır ve yüzeylerin üçgenler ile kesişiminden yararlanarak hesaplanan noktalar değildir ve birisinin ayarlaması gereken toleransa büyük ölçüde bağımlıdır.
Birisi daha iyi bir fikriniz varsa veya bu amaç için beni uygun bir kütüphaneye yönlendirebilir mi?
Yüzey ile ilgili ek bilgileriniz var mı? Verimli çalışabilir misin? Hangi noktada bir noktaya etkili bir şekilde ulaşabiliyor musunuz? – maxim1000
Yüzey bir helikoiddir. X (r, teta) = r * cos (teta), 'y (r, teta) = teta, z (r, teta) = r * sin (teta)' dır Bir iç ve dış bir ayırt etmek imkansız – linello
Oh, sağ. Bu yüzden cevabım tam olarak açık değil. Ama yine de theta ve r'yi (x, y, z) olarak belirleyebilir ve bundan işaretli bir mesafe hesaplayabilirsiniz. Bununla ilgili net olmayan şey, bunun ne kadar kesin olmasını bekliyorsunuz? Bir üçgen y-doğrultusunda yüzeyde birden çok kez kesişirse ne olur? –