Bonjour à tous,

Je souhaite créer une rotation grâce aux angles d'Euler sur un cube en 3D sous Python.
Pour ce faire, je souhaite faire du calcul matriciel, j'ai donc, en choisissant la convention (phi,theta,psi), créer la matrice donnant la rotation. Je connais ces coefficients, je les ai rentré sous Python, mais je ne sais pas pourquoi il y a une erreur ascii quand je décide de le lancer..
Bref, c'est déjà un premier problème vers le chemin de la réussite d'une rotation complète..

Pouvez-vous m'aider ?
Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from mpl_toolkits.mplot3d import Axes3D
from numpy import sin,cos
import matplotlib.pyplot as plt
import numpy as np
from itertools import product, combinations
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.set_aspect("auto")
ax.set_autoscale_on(True)
 
phi=np.radians(60)
theta=np.radians(20)
psi=np.radians(45)
 
A=np.array([cos(psi)*cos(phi)-cos(theta)*sin(phi)*sin(psi),cos(psi)*sin(phi)+cos(theta)*cos(phi)*sin(psi),sin(psi)*sin(theta)],
            [-sin(psi)*cos(phi)-cos(theta)*sin(phi)*cos(psi),-sin(psi)*sin(phi)+cos(theta)*cos(phi)*cos(psi),cos(psi)*sin(theta)],
            [sin(theta)*sin(phi),-sin(theta)*cos(phi),cos(theta)])
 
#dessiner cube
r = [-10, 10]
for s, e in combinations(np.array(list(product(r,r,r))), 2):
    if np.sum(np.abs(s-e)) == r[1]-r[0]:
        s_rotated=np.dot(A,s)
        e_rotated=np.dot(A,e)
        ax.plot3D(*zip(s_rotated,e_rotated), color="b")
 
plt.show()
Et voici l’exécutable avec l'erreur :
Traceback (most recent call last):

File "C:\Python27\lib\site-packages\IPython\core\interactiveshell.py", line 2894, in run_code
self.showtraceback()

File "C:\Python27\lib\site-packages\IPython\core\interactiveshell.py", line 1756, in showtraceback
value, tb, tb_offset=tb_offset)

File "C:\Python27\lib\site-packages\IPython\core\ultratb.py", line 1190, in structured_traceback
self, etype, value, tb, tb_offset, context)

File "C:\Python27\lib\site-packages\IPython\core\ultratb.py", line 1107, in structured_traceback
self, etype, value, elist, tb_offset, context

File "C:\Python27\lib\site-packages\IPython\core\ultratb.py", line 501, in structured_traceback
out_list.extend(self._format_list(elist))

File "C:\Python27\lib\site-packages\IPython\core\ultratb.py", line 548, in _format_list
Colors.Normal)

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 10: ordinal not in range(128)