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 :
Et voici l’exécutable avec l'erreur :
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()
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)
Partager