- 平面中任意四个点围成的面积,输入任意四个点的坐标并返回围成的面积。
思路:
可以使用**海龙公式**计算任意四边形的面积,具体步骤如下:
1. 输入四个点的坐标,可以使用列表或元组存储,例如:[(x1, y1), (x2, y2), (x3, y3), (x4, y4)]
2. 计算任意两个点之间的距离,可以使用勾股定理,例如:d12 = ((x2-x1)**2 + (y2-y1)**2)**0.5
3. 计算对角线长度,例如:d14 = ((x4-x1)**2 + (y4-y1)**2)**0.5
4. 计算半周长,例如:s = (d12 + d23 + d34 + d14)/2
5. 计算面积,例如:area = (s-d12)(s-d23)(s-d34)*(s-d14) ** 0.5
def area_of_quadrilateral(points):
x1, y1 = points[0]
x2, y2 = points[1]
x3, y3 = points[2]
x4, y4 = points[3]
d12 = ((x2-x1)**2 + (y2-y1)**2)**0.5
d23 = ((x3-x2)**2 + (y3-y2)**2)**0.5
d34 = ((x4-x3)**2 + (y4-y3)**2)**0.5
d14 = ((x4-x1)**2 + (y4-y1)**2)**0.5
s = (d12 + d23 + d34 + d14)/2
area = (s-d12)*(s-d23)*(s-d34)*(s-d14) ** 0.5
return area
if __name__ == '__main__':
points = [(0, 0), (1, 1), (2, 3), (3, 2)]
area = area_of_quadrilateral(points)
print("The area of the quadrilateral is", area)
- 平面中点A绕点B旋转
α
\alpha
α度,点A的坐标是多少?输入点坐标A,坐标B,旋转角度n,返回点A旋转后的坐标。
import math
def rotate_point(point_a, point_b, angle):
angle_rad = math.radians(angle)
delta_x = point_a[0] - point_b[0]
delta_y = point_a[1] - point_b[1]
new_delta_x = delta_x * math.cos(angle_rad) - delta_y * math.sin(angle_rad)
new_delta_y = delta_x * math.sin(angle_rad) + delta_y * math.cos(angle_rad)
new_x = point_b[0] + new_delta_x
new_y = point_b[1] + new_delta_y
return (new_x, new_y)
if __name__ == '__main__':
point_a = [8, 5]
point_b = [0, 0]
angle = 30
result = rotate_point(point_a, point_b, angle)
print(result)