CLASSE DE VECTEURS EN 2D / 3D PORTABLE, UTILISATION POUR SIMULATIONS PHYSIQUES

Signaler
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
Messages postés
3
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
21 décembre 2005
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/18263-classe-de-vecteurs-en-2d-3d-portable-utilisation-pour-simulations-physiques

Messages postés
3
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
21 décembre 2005

il est preferable de templater les methodes
template<typename S>
CVecteur2D operator* (const S factor) const
{
return CVecteur2D( T(factor)*x, T(factor)*y );
}
template<typename S>
CVecteur3D(const CVecteur3D<S>& V) { x (T)V.x; y (T)V.y; z = (T)V.z; }
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

pourquoi? ça évite de faire les calculs intermédiaires sur les vecteurs d'entiers avec des entiers, et puis ça évite aussi d'imposer un choix (par exemple: double).

et il y a une faute d'ortho trop bête dans le commentaire -_-
Messages postés
3
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
21 décembre 2005

j'avais vu, mais pas dit ;), je degagerai aussi le S en parametre de la classe
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

Une chose que je n'ai pas faite dans ce code-ci: les opérateurs + - * / ^ == et != devraient être définis comme 'const', c'est assez important. Désolé de ne pas faire la modif ici.
Afficher les 21 commentaires