使用3组坐标的三角形面积

时间:2020-01-05 05:57:09

标签: python python-3.x area

我正在做一个问题,我需要在给定3组坐标的情况下找到三角形的区域

那么将数组转换为(a1,b1)(a2,b2)(a3,b3)中的对的逻辑是什么,以及如何使用此顶点查找三角形区域

这是我的代码

{{-- Google Language Translator  START --}}
<style>
.google-translate {
    display: inline-block;
    vertical-align: top;
    padding-top: 15px;
}

.goog-logo-link {
    display: none !important;
}

.goog-te-gadget {
    color: transparent !important;
}

#google_translate_element {
    display: none;
}

.goog-te-banner-frame.skiptranslate {
    display: none !important;
}

body {
    top: 0px !important;
}

</style>

<script src="{{asset('js/translate-google.js')}}"></script>



<script type="text/javascript">
function googleTranslateElementInit2(){
    new google.translate.TranslateElement({
                    pageLanguage:'en',
                    includedLanguages: 'en,es',
        // https://ctrlq.org/code/19899-google-translate-languages
        // includedLanguages: 'en,it,la,fr',
        // layout:     google.translate.TranslateElement.InlineLayout.SIMPLE,
        autoDisplay:true
    },'google_translate_element2');
    var a = document.querySelector("#google_translate_element select");
    // console.log(a);

    if(a){
        a.selectedIndex=1;
        a.dispatchEvent(new Event('change'));
    }
}
</script>

<ul class="navbar-nav my-lg-0 m-r-10">
<li>
    <div class="google-translate">
        <div id="google_translate_element2"></div>
    </div>
</li>

2 个答案:

答案 0 :(得分:3)

(x1,y1)是第一坐标,(x2,y2)是第二坐标,(x3,y3)是第三坐标的三角形的面积。

Area =1/2[x1(y2 - y3) + x2(y3 - y1) + x3(y1 - y2)]

x=[2,3,7]
y=[4,-6,8]

def get_area(x,y):
    area=0.5*( (x[0]*(y[1]-y[2])) + (x[1]*(y[2]-y[0])) + (x[2]*(y[0]-y[1])) )
    return int(area)

coords=list(zip(x,y))
print("Area of points {},{},{} is {}".format(*coords,get_area(x,y)))

输出

Area of points (2, 4),(3, -6),(7, 8) is 27.0 

答案 1 :(得分:2)

假设您有3个输入点的坐标为:

x1, y1
x2, y2
x3, y3

您可以使用勾股定理找到所有边的长度:

l1 = sqrt((x1 - x2)**2 + (y1 - y2)**2)
l2 = sqrt((x2 - x3)**2 + (y2 - y3)**2)
l3 = sqrt((x3 - x1)**2 + (y3 - y1)**2)

,然后将Heron公式用于三角形的面积:

p = (l1 + l2 + l3)/2
area = sqrt(p * (p - l1) * (p - l2) * (p - l3))