Este grupo de especialistas pasados varios días de investigación y recopilar de información, hemos dado con la respuesta, esperamos que te sea de utilidad en tu trabajo.
Ejemplo 1: rotar matriz python
numpy.rot90(array, k=number_rotations, axes=(0,1))
Ejemplo 2: ángulo de Euler al vector de rotación python
import math
import numpy as np
# RPY/Euler angles to Rotation Vectordefeuler_to_rotVec(yaw, pitch, roll):# compute the rotation matrix
Rmat = euler_to_rotMat(yaw, pitch, roll)
theta = math.acos(((Rmat[0,0]+ Rmat[1,1]+ Rmat[2,2])-1)/2)
sin_theta = math.sin(theta)if sin_theta ==0:
rx, ry, rz =0.0,0.0,0.0else:
multi =1/(2* math.sin(theta))
rx = multi *(Rmat[2,1]- Rmat[1,2])* theta
ry = multi *(Rmat[0,2]- Rmat[2,0])* theta
rz = multi *(Rmat[1,0]- Rmat[0,1])* theta
return rx, ry, rz
defeuler_to_rotMat(yaw, pitch, roll):
Rz_yaw = np.array([[np.cos(yaw),-np.sin(yaw),0],[np.sin(yaw), np.cos(yaw),0],[0,0,1]])
Ry_pitch = np.array([[ np.cos(pitch),0, np.sin(pitch)],[0,1,0],[-np.sin(pitch),0, np.cos(pitch)]])
Rx_roll = np.array([[1,0,0],[0, np.cos(roll),-np.sin(roll)],[0, np.sin(roll), np.cos(roll)]])# R = RzRyRx
rotMat = np.dot(Rz_yaw, np.dot(Ry_pitch, Rx_roll))return rotMat
roll =2.6335
pitch =0.4506
yaw =1.1684print"roll = ", roll
print"pitch = ", pitch
print"yaw = ", yaw
print""
rx, ry, rz = euler_to_rotVec(yaw, pitch, roll)print rx, ry, rz
Ejemplo 3: hacer una matriz de rotación en Python
In [x]: theta = np.radians(30)
In [x]: c, s = np.cos(theta), np.sin(theta)
In [x]: R = np.array(((c,-s),(s, c)))
Out[x]:print(R)[[0.8660254-0.5][0.50.8660254]]
Reseñas y calificaciones
Si piensas que te ha sido de provecho este artículo, agradeceríamos que lo compartas con otros desarrolladores y nos ayudes a dar difusión a esta información.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)