python 凸多边形面积
生活随笔
收集整理的這篇文章主要介紹了
python 凸多边形面积
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【問題描述】
給出平面上一組頂點的坐標,計算出它們所圍成的凸多邊形的面積。
【輸入形式】
從標準輸入讀取頂點坐標。格式為:第一行是點的個數N(3≤N≤15),后面緊接著N行,每行兩個數字 (由空格隔開),分別表示該點的X、Y坐標(0≤X,Y≤32767)。所有點的坐標互不相同,且按順時針次序給出。
輸入數據確保該多邊形是一個凸多邊形。
【輸出形式】
向標準輸出打印一個浮點數,是該多邊形的面積。該浮點數保留兩位小數。
【輸入樣例】
4
3 3
3 0
1 0
1 2
【輸出樣例】
5.00
【樣例說明】
輸入數據表示了如圖所示的四邊形。其面積為5.00。
import numpy as np n = int(input()) list_coordinate = [] # 儲存坐標 while n: # 輸入坐標list_coordinate.append(list(map(int, input().split())))n -= 1 list_dot = [] # 儲存點 for i in range(len(list_coordinate)):list_dot.append(np.array(list_coordinate[i])) list_vector = [] # 儲存向量--類似:1-2 1-3 1-4 1-n for i in range(1, len(list_dot)):list_vector.append(list_dot[0] - list_dot[i]) # 計算向量 list_triangle = [] # 儲存三角形面積 for i in range(len(list_vector) - 1):t = np.cross(list_vector[i], list_vector[i + 1]) # 計算叉乘的模list_triangle.append(float(np.linalg.norm(t)/2)) # 儲存面積 t = sum(list_triangle) print('%.2f' % t)總結
以上是生活随笔為你收集整理的python 凸多边形面积的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中语言超酷特性 之 --- 逆唤算式
- 下一篇: Python中的下划线到底什么意思?