色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 繞軸旋轉(zhuǎn)

Python是一種常用的編程語(yǔ)言,其強(qiáng)大的庫(kù)和模塊使其成為科學(xué)計(jì)算、人工智能等領(lǐng)域的首選。在三維建模中,Python也有其獨(dú)特用處。其中之一是繞軸旋轉(zhuǎn)。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def rotate_around_axis(points, axis, theta):
"""
繞軸旋轉(zhuǎn)
:param points: 待旋轉(zhuǎn)的點(diǎn)集,Nx3數(shù)組
:param axis: 旋轉(zhuǎn)軸,長(zhǎng)度為3的數(shù)組
:param theta: 旋轉(zhuǎn)角度,單位為度
:return: 旋轉(zhuǎn)后的點(diǎn)集,Nx3數(shù)組
"""
theta = np.radians(theta)
axis = axis / np.linalg.norm(axis)
ux, uy, uz = axis
cos_theta = np.cos(theta)
sin_theta = np.sin(theta)
rot_mat = np.array([[cos_theta + ux**2*(1-cos_theta), ux*uy*(1-cos_theta)-uz*sin_theta, ux*uz*(1-cos_theta)+uy*sin_theta],
[ux*uy*(1-cos_theta)+uz*sin_theta, cos_theta+uy**2*(1-cos_theta), uy*uz*(1-cos_theta)-ux*sin_theta],
[ux*uz*(1-cos_theta)-uy*sin_theta, uy*uz*(1-cos_theta)+ux*sin_theta, cos_theta+uz**2*(1-cos_theta)]])
return np.matmul(rot_mat, points.T).T
# 模擬點(diǎn)云數(shù)據(jù)
x, y, z = np.random.normal(0, 1, (3, 100))
# 三維可視化
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, c=z)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
# 繞x軸旋轉(zhuǎn)30度
theta = 30
x, y, z = rotate_around_axis(np.array([x, y, z]).T, np.array([1, 0, 0]), theta).T
# 三維可視化
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, c=z)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

該代碼使用了Numpy和Matplotlib等Python庫(kù)。其中,rotate_around_axis函數(shù)實(shí)現(xiàn)了繞軸旋轉(zhuǎn)的功能,返回旋轉(zhuǎn)后的點(diǎn)集。在本例中,我們使用了隨機(jī)生成的三維點(diǎn)云,并繞x軸旋轉(zhuǎn)了30度。

繞軸旋轉(zhuǎn)是處理三維數(shù)據(jù)的重要步驟之一。通過(guò)Python實(shí)現(xiàn),可以快速、高效地進(jìn)行旋轉(zhuǎn)操作,并結(jié)合可視化工具呈現(xiàn)旋轉(zhuǎn)效果。隨著Python在科學(xué)計(jì)算、人工智能等領(lǐng)域的應(yīng)用越來(lái)越廣泛,繞軸旋轉(zhuǎn)也將得到更加廣泛的應(yīng)用。