gpt4 book ai didi

python - 如何使用 numpy 数组将 python 中的形状旋转 +/- x 度?

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:38 29 4
gpt4 key购买 nike

我是 python 的新手,我正在尝试将一个形状(它是一个内部有切口的闭合圆)旋转 +/- x 度。度数值由用户交互给出(用户选择将图形旋转的度数)。

该函数必须对整个形状(包括切口)进行操作,我想使用 numpy 数组来完成。

我是 python 的新手,我什至不确定从哪里开始,所以我没有任何连贯的代码可以发布,否则我会发布。

对于形状中的每条曲线,我试图将其转换为以下形式:

x' = xr + (x-xr)cos(angle) - (y - yr) sin(angle)

y' = yr + (x-xr)sin(angle) + (y - yr) cos(angle)

其中 (x',y') 是输出中的点,angle = 旋转角度,(xr, yr) = 点旋转,然后我想返回旋转(修改)的形状。

我将继续努力,看看我是否能想出更好的东西来发布,但我们将不胜感激任何帮助。

如果您有任何疑问,或者需要澄清,请告诉我。

最佳答案

使用您的符号并假设 x,y 都是包含您的曲线的相同大小的列表,这就是我要获取数组 x_new 的方法:

xr_arr = xr * ones(len(x))
yr_arr = yr * ones(len(y))
angle_arr = angle * ones(len(x))
x_new = xr_arr + (x - xr_arr)*cos(angle_arr) - (y - yr_arr)*sin(angle_arr)

这假设您已在脚本中包含 from numpy import *。同理可以得到数组y_new。如果您有多条曲线,您可以使用二维数组进行类似的操作。

EDIT: As Jaime mentions below, if x,y are numpy arrays, there is no need to vectorize xr,yr, and angle.

关于python - 如何使用 numpy 数组将 python 中的形状旋转 +/- x 度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20129043/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com