J'ai besoin de faire matrice et de mathématiques vectorielles dans l'objectif-c. Y a-t-il des tutoriels qui montrent comment cela fonctionne? Y a-t-il des bibliothèques de mathématiques qui sont utiles? P>
4 Réponses :
En particulier, la bibliothèque VDSP dans le cadre d'accélération est ce que vous recherchez en ce qui concerne la manipulation de matrice accélérée: développeur.apple.com/library/ios/#documentation/Accelerate/...
Outre le cadre d'accélération que OLE pointe pour une matrice accélérée Math, les structures CGAFFITIONNESFORMES et CATRANSFORM3D sont des matrices (3x3 et 4x4, respectivement). Apple fournit des fonctions d'aide à la manipulation de ceux-ci à l'aide de la rotation, de la mise à l'échelle, etc., qui peut être utile si vous souhaitez effectuer ce type de transformation. p>
En particulier, Apple a une section du guide de programmation de quartz 2D où ils Expliquez une partie de la matrice Math . P>
Je ne l'ai pas vu mentionné mais Glkit < / a> fournit des fonctions vectorielles / matricielles pour les types de mathématiques couramment utilisés dans les graphiques informatiques. P>
Celles-ci sont agréables et simples à utiliser, mais je ne suis pas claire sur le point de savoir s'ils sont optimaux pour la performance. par exemple. est GLKVector3normaliser juste faire 1.0 / sqrtf (x * x + y * y + z * z) code>, exécutant un approximation du logiciel rapide ou à l'aide d'une instruction matérielle (le bras présumant a même un RSQRT)?
En ce qui concerne l'optimisme, il est en ligne et quelques-unes des fonctions matricielles les plus chères ont #defines code> pour changer de mise en œuvre pour utiliser des instructions vectorisées lors de la construction de l'appareil. Vous donne une matrice compréhensible / vecteur lib avec performance. Je suppose que tout est une approximation dans les limites du type de stockage sous-jacent, mais soulignant Carmack Fast Places à une personne à la recherche d'une bibliothèque pourrait être un peu tôt dans le voyage.
YCMatrix fournit une emballage pratique pour de nombreux fonctions d'accélération du cadre (Blas, Lapack et VDSP), à la fois sur OS X et iOS. P>
(Disclaimer: Je suis le développeur de cette bibliothèque) p>
Notez que le nouveau système Coremotion, fait un heckovalot de quaternions et similaires, pour vous. C'est bien.