SORU
27 Ocak 2010, ÇARŞAMBA


Neden OpenGL radyan yerine derece kullanıyor mu?

OpenGL tasarımcılar hiç matematik korktu ve Lineer Cebir bilgisi ama en basit OpenGL uygulamaları için önemlidir. Güvenli bir şekilde OpenGL programcılar radyan cinsinden açı aşina olduğu kabul edilebilir bence.

Matematiksel olarak, radyan her açıdan dereceden fazla zarif. Onlar da pratik avantajları vardır:

  • C standart kütüphane radyan kullanır.
  • Hemen hemen herhangi bir diğer kütüphane de radyan kullanır.
  • Radyan bazı hesaplamalar, örneğin dairesel yay uzunluğu daha uygundur.

Neden, o zaman, OpenGL tasarımcılar derece kullanmak glRotatef gluPerspective gibi işlevleri belirtmek için karar verdi?

(Hiçbir pratik önemi olduğunu biliyorum, ve zaten değişecek değil. Sadece merak ettim, ve cevap opengl.org bul) yapamadım

CEVAP
27 Ocak 2010, ÇARŞAMBA


Normal insanlar hesaplanırken derece fazla kullanıldığı için -- OpenGL basit kullanılmak üzere tasarlanmıştır. Derece üzerinde faaliyet gösteren tüm fonksiyonlar "yüksek seviye" fonksiyonları. unutmayın

Kendisi OpenGL için, radyan veya derece -- almadığına içten dönüşüm matrislerinin zaten dönüştürülür, ya da diğerini kullanarak hesaplama kazanç yok yani hiçbir farkı yok.

Neden derece onları kullanarak izin verebilirsiniz eğer insanlar için bir şeyler zorlaştırıyor? Kimse ciddiye OpenGL kodlama kendi matrislerin genelleştirilmiş gelen computated neyse sağlayacaktır.

Aynı ruhla, neden glRotatef gluPerspective neyse matrislerin her açıdan daha zarif olduğundan ve kontrol daha yüksek bir notu izin isteyebiliriz.

Nokta-nokta:

  • Şıklığı - matris her açıdan daha zarif
  • C kütüphanesi C kütüphanesi kullanır çünkü onları hesaplamalı sebep, GL işlevlerini üstlenmek açıları da yok olmak için kullanılan hesaplama yoğun görevler (matris doğrudan), ve muhtemelen bu uygulama, bir arama tablosu için bir derece zaten.
  • ayrıca Clib --, gerçek olmayan pek çok şey gibi başka bir kütüphane - C aynı nedenlerle kütüphane C aşağıdaki kitaplıkları bir seçim sağlar, bazı ikincisi kullanın
  • Hesaplama conviniency - -- iç gösterim matris olduğu önemli değil, hesaplamalar probablye yapılırsa verimli olmak anlamına geliyorsa arama tabloları kullanarak açıları üzerinde doğrudan işlem yok, temsili bir önemi yok

Ayrıca not: fonksiyonları derece kullanarak (3.2) mevcut standart kaldırılmış. glRotatefsadeceişlevini derece, ya da aslında, bir açı alıyor.glubir yardımcı kütüphane değil demek için ağır dağıtımı, dolayısıyla bu özel doğru okunabilirlik gluPerspective(... 60.0f..) çok daha okunabilir ve "standart" açısından temin FOV daha gluPerspective( ... M_PI / 3.0f ... ) olurdu.

Son notlar:

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Numberphile

    Numberphile

    15 EYLÜL 2011
  • TheForgottenGamer1

    TheForgotten

    28 AĞUSTOS 2009
  • USI Events

    USI Events

    6 AĞUSTOS 2013