国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python-判斷某個坐標點是否在三角形內

2019-11-08 01:38:27
字體:
來源:轉載
供稿:網友

主要用到的知識點:

在平面直角坐標系內,A(a,b),B(c,d),C(e,f)構成之三角形面積為

  

A,B,C三點最好按逆時針順序從右上角開始取,因為這樣取得出的結果一般都為正值,如果不按這個規則取,可能會得到負值,但只要取絕對值就可以了,不會影響三角形面積的大小。

向量積可以被定義為:模長:(在這里θ表示兩向量之間的夾角(共起點的前提下)(0° ≤ θ ≤ 180°),它位于這兩個矢量所定義的平面上。)方向:a向量與b向量的向量積的方向與這兩個向量所在平面垂直,且遵守右手定則。(一個簡單的確定滿足“右手定則”的結果向量的方向的方法是這樣的:若坐標系是滿足右手定則的,當右手的四指從a以不超過180度的轉角轉向b時,豎起的大拇指指向是c的方向。)也可以這樣定義(等效):向量積|c|=|a×b|=|a| |b|sin<a,b>即c的長度在數值上等于以a,b,夾角為θ組成的平行四邊形的面積。利用面積法,如上圖所示,如果點P在三角形ABC的內部,則三個小三角形PAB, PBC, PAC的面積之和 = ABC的面積,反之則不相等。根據題目要求,設有四個坐標點分別是P(x,y),A(x1,y1),B(x2,y2),C(x3,y3).根據三角形的面積公式可以判斷是否構成三角形,即:
def IsTrangleOrArea(x1,y1,x2,y2,x3,y3):    return abs((x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) / 2.0)     其次,根據面積公式依次計算PAB,PAC,PBC和ABC的面積 :ABC==PAB+PAC+PBC?。如果成立則說明P點在三角形內部,否則不是詳細代碼如下,歡迎指正
#-*- coding: utf8 -*-#首先判斷是否是三角形import mathcorA = raw_input("請輸入A點的坐標值:").split(",")x1,y1 = int(corA[0]),int(corA[1])corB = raw_input("請輸入B點的坐標值:").split(",")x2,y2 = int(corB[0]),int(corB[1])corC = raw_input("請輸入C點的坐標值:").split(",")x3,y3 = int(corC[0]),int(corC[1])corP = raw_input("請輸入P點的坐標值:").split(",")x,y = int(corP[0]),int(corP[1])def IsTrangleOrArea(x1,y1,x2,y2,x3,y3):    return abs((x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) / 2.0)def IsInside(x1,y1,x2,y2,x3,y3,x,y):    #三角形ABC的面積    ABC = IsTrangleOrArea(x1,y1,x2,y2,x3,y3)    # 三角形PBC的面積    PBC = IsTrangleOrArea(x,y,x2,y2,x3,y3)    # 三角形ABC的面積    PAC = IsTrangleOrArea(x1,y1,x,y,x3,y3)    # 三角形ABC的面積    PAB = IsTrangleOrArea(x1,y1,x2,y2,x,y)    return (ABC == PBC + PAC + PAB)if __name__ =="__main__":   #if IsInside(10, 30, 20, 0, 10, 30, 10, 15):   if IsInside(x1,y1,x2,y2,x3,y3,x,y):      PRint "Inside"   else:      print "Outside"


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淅川县| 西和县| 嵩明县| 宝应县| 关岭| 盐山县| 景德镇市| 万载县| 玉环县| 延长县| 上栗县| 西乌| 武夷山市| 潜山县| 和硕县| 辽宁省| 奉新县| 隆安县| 车致| 布拖县| 三门县| 枣庄市| 静宁县| 响水县| 乌兰浩特市| 崇仁县| 旅游| 临城县| 阿城市| 海丰县| 色达县| 融水| 舟曲县| 达州市| 团风县| 杨浦区| 焉耆| 永嘉县| 神木县| 玉溪市| 吐鲁番市|