第1个回答 2019-09-17
以三角形外一点
O
为圆心,分别以
OA,OB,OC
为半径画圆(这是三个同心圆:圆A,圆B,圆C),若要求三角形绕O点旋转X度的三角形各点位置,则过0点依次序连接一三角形各顶点,作角AOA'=X度且交圆A于A',作角BOB'=X度且交圆B于B',作角COC'=X度且交圆C于C',最后连接A'B'C',那么三角形A'B'C'就是绕O点旋转X度后的位置.
第2个回答 2020-12-18
首先你要知道原图形在坐标轴中对应的坐标点,然后可根据图形旋转的性质:图形在旋转过程中不改变其形状,大小。这样我们就可以通过旋转得到两个全等的图形,再根据全等图形的对应边,对应角相等,再利用勾股定理,或三角函数即可得出旋转后图像的坐标点了。😊
二维图形旋转是计算机图形学中非常常用的一种操作,其中关键步骤就是坐标点的计算。
顺时针旋转
顺时针旋转矩阵为
def CW_rotate(angle, x, y, cent_x, cent_y):
'''
顺时针旋转坐标计算
INPUT --> 旋转角度, 原坐标x, 原坐标y, 中心点x, 中心点y
'''
angle = math.radians(angle) # 以弧度作为参数
new_x = (x-cent_x)*math.cos(angle) + (y-cent_y)*math.sin(angle) + cent_x
new_y = -(x-cent_x)*math.sin(angle) + (y-cent_y)*math.cos(angle) + cent_y
return round(new_x, 2), round(new_y, 2)
def CW_rotate_N(angle, x, y, cent_x, cent_y):
'''
N个坐标点顺时针旋转坐标计算
INPUT --> 旋转角度, 原坐标x, 原坐标y, 中心点x, 中心点y
'''
angle = math.radians(angle) # 以弧度作为参数
x = np.array(x)
y = np.array(y)
new_x = (x-cent_x)*math.cos(angle) + (y-cent_y)*math.sin(angle) + cent_x
new_y = -(x-cent_x)*math.sin(angle) + (y-cent_y)*math.cos(angle) + cent_y
return new_x, new_y
逆时针旋转
逆时针旋转矩阵为