python求一点旋转后的坐标
时间: 2023-09-03 11:02:08 浏览: 185
在Python中,可以使用数学库`math`来求解一个点在旋转后的坐标。假设需要求解的点的初始坐标为`(x, y)`,旋转中心为`(cx, cy)`,旋转角度为`angle`(以弧度为单位)。
首先,需要导入`math`库:
```python
import math
```
接着,可以定义一个函数来计算旋转后的坐标:
```python
def rotate_point(x, y, cx, cy, angle):
# 将角度转换为弧度
angle_rad = math.radians(angle)
# 计算相对于旋转中心的位置
dx = x - cx
dy = y - cy
# 计算旋转后相对于旋转中心的位置
new_dx = dx * math.cos(angle_rad) - dy * math.sin(angle_rad)
new_dy = dx * math.sin(angle_rad) + dy * math.cos(angle_rad)
# 计算旋转后的坐标
new_x = new_dx + cx
new_y = new_dy + cy
return new_x, new_y
```
最后,可以使用这个函数来求解旋转后的坐标:
```python
# 定义初始坐标、旋转中心和旋转角度
x = 1
y = 2
cx = 0
cy = 0
angle = 45
# 求解旋转后的坐标
new_x, new_y = rotate_point(x, y, cx, cy, angle)
# 打印结果
print("旋转前坐标:({}, {})".format(x, y))
print("旋转后坐标:({}, {})".format(new_x, new_y))
```
以上代码将输出以下结果:
```
旋转前坐标:(1, 2)
旋转后坐标:(-0.7071067811865476, 2.1213203435596424)
```
这表示初始坐标`(1, 2)`经过45度的逆时针旋转后,得到的新坐标为`(-0.7071067811865476, 2.1213203435596424)`。
阅读全文