Heu ba ça manque d´info ^^. Quel langage?
Sinon ton histoire de refaire la crois 4 fois me parait louche, dans le temps ou je m´amuser à coder avec des biblio 3d toute faite tu as en generale une fonction rotate, enfin un truc tout fait qui à pour but de faire ce que tu demande.
tu dois creer un objet croix (ou une structure si c´est pas un langage objet)
tu as doit avoir 6 attributs de position x y et z de en haut à gauche et en bas à drotie
un attribut couleur ou texture
des attributs de taille (hauteur largeur et profondeur)
et 3 attributs d´angle celon x y et z
bon comme je suis partit on va essayer de faire une emthode rotate mais à mon avis ça existe deja.
donc
void maclass::rotateZ(int angle)
{
/*bon déjà tu sais que float _xhg, float _yhg et float _zhg te donne la position de en haut à gauche et pareil pour en bas à droite int _xbd, int _ybd, int _zbd. ton attribut angle par rapport à l´axe des z int _angleZ et enfin la largeur de l´objet float _larg la profondeur float _prof. Et dernieremenbt _x, _y et _z les position du centre de l´objet*/
//maintenant c´est merveilleusement simple
/* dans un premier temps celon la largeur et la profondeur de l´objet tu as un angle par rapport à ton axe des x formé par la projection dans le plan (x, y)de la droite entre ton point en haut à gauche (on l´appelle G) et celui en bas à droite (D). Cette angle est tout simple égale à tan-1(_prof/_larg)*/
/*le segment de la porjection dans (x, y) de [GD] à pour longeur racine(_prof²+larg²)*/
/*reste plus qu´as calculer le nouveau _xhg et _xbd*/
_xbd = (1/2) * racine(_prof²+_larg&) *cos( _angleZ + angle - tan-1(_prof/_larg) + _x;
_xhg = (1/2) * racine(_prof²+_larg&) * -cos( _angleZ + angle - tan-1(_prof/_larg) + _x;
//on fait de même pour els position en y
_ybd = (1/2) * racine(_prof²+_larg&) *-sin( _angleZ + angle - tan-1(_prof/_larg) + _y;
_yhg = (1/2) * racine(_prof²+_larg&) * sin( _angleZ + angle - tan-1(_prof/_larg) + _y;
}
Bon je suis peut être pas super claire mais sans dessin c´est pas simple, G et D doivent etre totallement opposé l´un à l´autre. Il faut que lorsque tu "dessines" ton objet tu donnes les positions de ces deux points et le ptit bout de code au dessus devrait te le faire tourner celon un axe verticale, tu peux facilement refaire la même chose pour tourner autoure des axes du "plan".
Voila sinon c´est surtout un probleme de geometrie ton truc sort une feuille et un crayon la prochaine fois ce sont tes meilleurs amis :p.