如何计算旋转后的图形的坐标点

如题所述

有坐标就好办啊,有公式的,原理就是将每两个点组成一个梯形,利用梯形公式(上底+下底)*高/2,两两相加直到起点,如有(x1,y1)(x2,y2)(x3,y3)(x1,y1)
公式:(y1+y2)*(x2-x1)/2+(y2+y3)*(x3-x2)/2+(y3+y1)*(x1-x3)/2
以此类推就可以算出任意不规则图形的面积了
温馨提示:答案为网友推荐,仅供参考
第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
逆时针旋转

逆时针旋转矩阵为
相似回答