SORU
7 EKİM 2011, Cuma


GluSphere kullanmadan OpenGL Küre çizim()?

Orada herhangi bir öğreticiler gluSphere() kullanmak zorunda kalmadan OpenGL bir küre çizebilirim nasıl izah var mı?

OpenGL için öğreticiler birçok sadece küpler. Araştırdım ama bir küre çizim çözümleri en gluSphere() kullanmak için. Ayrıca this site bir küre çizim kodu olan bir site var ama küre çizim arkasındaki matematik açıklamıyor. Ayrıca o bağlantı çokgen yerine dörtlü içinde küre çizmek için nasıl başka sürümleri var. Fakat yine de, küreler kodu ile çizilir anlamıyorum. Eğer istersen küre değiştirmek olabilir görselleştirmek için mümkün olmak istiyorum.

CEVAP
7 EKİM 2011, Cuma


Bunu yapabilmenin bir yolu bir platonik Üçgen yüze sahip katı octahedron, örneğin bir ile başlamak için. Daha sonra her Üçgen ve özyinelemeli olarak geçmesi gibi küçük üçgenler halinde toplanıp,:

recursively drawn triangles

Puan yeterli miktarda sonra, katı merkezinden belli bir mesafede hepsi kendi vektörler normalize. Bu noktaların sayısı arttıkça tarafı bir küre, artan yumuşaklığı ile benzer bir şekil dışarı çıkıntı neden olur.

Normalleştirme burada başka bir noktasına göre açısı aynı öyle bir noktaya taşıması anlamına gelir, ama aralarındaki mesafe farklı. Burada iki boyutlu bir örnek.

enter image description here

A ve B 6 adet apart vardır. Ama 12 satır AB üzerinde bir nokta bulmak için birimler A. uzak kalır

enter image description here

C, mesafe 12 ile ilişkin B normalize form olduğunu söyleyebiliriz. Bu kodu C elde edebiliriz:

#returns a point collinear to A and B, a given distance away from A. 
function normalize(a, b, length):
    #get the distance between a and b along the x and y axes
    dx = b.x - a.x
    dy = b.y - a.y
    #right now, sqrt(dx^2   dy^2) = distance(a,b).
    #we want to modify them so that sqrt(dx^2   dy^2) = the given length.
    dx = dx * length / distance(a,b)
    dy = dy * length / distance(a,b)
    point c =  new point
    c.x = a.x   dx
    c.y = a.y   dy
    return c

Eğer biz bu normalleşme sürecinde bir sürü puan, tüm duyguları aynı nokta ve aynı mesafe R, sonra normalize puan hepsi yalan üzerine yay bir daire Bir merkez ve yarıçapı R

bulging line segment

Burada, siyah noktaları bir çizgi üzerinde başlar ve "" bir yay içine. dışarı çıkıntı

Bu işlemi hangi durumda bir küre yerine Daire almak üç boyutlu uzatılabilir. Sadece dz bir bileşen fonksiyonu normale ekleyin.

normalized polygons

level 1 bulging octahedron level 3 bulging octahedron

Eğer Epcot, küre bakarsanız bir nevi iş yerinde bu tekniği görebilirsiniz. -şişti o yuvarlak görünmesi için yüze sahip bir dodecahedron.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Canceriansoul

    Canceriansou

    15 Ocak 2011
  • FND Films

    FND Films

    2 Mayıs 2006
  • LearnCode.academy

    LearnCode.ac

    20 Aralık 2012