The Area of an Arbitrary Triangle-任意三角形的面积

The Area of an Arbitrary Triangle-任意三角形的面积,允许重复计算:

//The Area of an Arbitrary Triangle-任意三角形的面积
#include<iostream>
#include<cmath>
using namespace std;

bool IsTriangle(double a,double b,double c);
void areafun(double a,double b,double c,double& area,double& s);

int main()
{
    double a,b,c,s,area;
    char ans;
    do{
        cout<<"Enter the three length of the Triangle:\n";
        cin>>a>>b>>c;
    
        if(IsTriangle(a,b,c))
            areafun(a,b,c,area,s);
        else
            cout<<"The three length are error!\n";
        
        cout<<"Do you want again?";
        cin>>ans;
    }while(‘Y‘ == ans || ‘y‘ == ans);
    return 0;
    
}

bool IsTriangle(double a,double b,double c)
{
    if((a+b>c && a+c>b && b+c>a && abs(a-b)<c && abs(a-c)<b && abs(b-c)<a) )
        return 1;
    return 0;
}

void areafun(double a,double b,double c,double& area,double& s)
{
    s = (a+b+c)/2;
    area = sqrt(s*(s-a)*(s-b)*(s-c));
    cout<<"The area of the Triangle is:"<<area<<endl;
}

结果:

Enter the three length of the Triangle:
3 4 5
The area of the Triangle is:6
Do you want again?y
Enter the three length of the Triangle:
3 4 4
The area of the Triangle is:5.56215
Do you want again?y
Enter the three length of the Triangle:
3 4 9
The three length are error!
Do you want again?y
Enter the three length of the Triangle:
4 4 4
The area of the Triangle is:6.9282
Do you want again?
时间: 2024-10-21 05:13:57

The Area of an Arbitrary Triangle-任意三角形的面积的相关文章

hdu 1451 Area in Triangle(计算几何 三角形)

Given a triangle field and a rope of a certain length (Figure-1), you are required to use the rope to enclose a region within the field and make the region as large as possible. Input The input has several sets of test data. Each set is one line cont

D3D triangle list(三角形列) 小例子

画三角形列的例子程序 #pragma once #pragma comment(lib,"d3d9.lib") #pragma comment(lib,"d3dx9.lib") #include<d3d9.h> #include<d3dx9.h> //TODO: -1 custom vertex struct CUSTOMVERTEX { float x; float y; float z; float rhw; }; #define D3D

Acdream 1203 KIDx&#39;s Triangle(解三角形)

题目链接:传送门 分析 给定角a,b,c,d.然后求角AED,这题其实就是高中的计算几何解三角形题目. 正弦定理: A/sin(A) = B/sin(B) = C/sin(C)=2*R (R为三角形外接圆的半径) 余弦定理:A^2 = B^2 + C^2 - 2*B*C*cos(A). 然后我们设AB = x ,然后可以通过正弦定理求出AD,BD,BE,AE,然后通过余弦定理 可以求出DE最后在通过正弦定理就可以求出角AED.需要注意的是asin()的范围为 [-pi/2,pi/2],我们得到的

118 Pascal&#39;s Triangle 帕斯卡三角形

给定 numRows, 生成帕斯卡三角形的前 numRows 行.例如, 给定 numRows = 5,返回[     [1],    [1,1],   [1,2,1],  [1,3,3,1], [1,4,6,4,1]]详见:https://leetcode.com/problems/pascals-triangle/description/ class Solution { public: vector<vector<int>> generate(int numRows) { v

求任意多边形的面积(转)

原文地址:http://blog.csdn.net/sun_shine_/article/details/18799739 给定多边形的顶点坐标(有序),让你来求这个多边形的面积,你会怎么做?我们知道,任意多边形都可以分割为N个三角形,所以,如果以这为突破点,那么我们第一步就是把给定的多边形,分割为数个三角形,分别求面积,最后累加就可以了,把多边形分割为三角形的方式多种多样,在这里,我们按照如下图的方法分割: 图1 S点作为起始点(点1),a->e依次作为点2,3…….一个三角形的面积是怎样的呢

任意多边形的面积(转)

任意多边形的面积 给定多边形的顶点坐标(有序),让你来求这个多边形的面积,你会怎么做?我们知道,任意多边形都可以分割为N个三角形,所以,如果以这为突破点,那么我们第一步就是把给定的多边形,分割为数个三角形,分别求面积,最后累加就可以了,把多边形分割为三角形的方式多种多样,在这里,我们按照如下图的方法分割: 图1 S点作为起始点(点1),a->e依次作为点2,3…….一个三角形的面积是怎样的呢?根据线性代数的知识,我们有如下的三角形面积公式,称之为有向面积(signed area): 将这个行列式

hdu3060Area2(任意多边形相交面积)

链接 多边形的面积求解是通过选取一个点(通常为原点或者多边形的第一个点)和其它边组成的三角形的有向面积. 对于两个多边形的相交面积就可以通过把多边形分解为三角形,求出三角形的有向面积递加.三角形为凸多边形,因此可以直接用凸多边形相交求面积的模板. 凸多边形相交后的部分肯定还是凸多边形,所以只需要判断哪些点是相交部分上的点,最后求下面积. 1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #inc

求三角形的面积

1.数学知识 求三角形的面积 三边的边长分别为:a, b, c; 公式:s = (a + b + c) / 2; area = √s * ( s - a) * (s - b) * (s -c); 2.源代码 #include<iostream> #include<cmath> using namespace std; bool TriangleArea(double a, double b, double c, double &area) { if(a + b <=

利用向量积(叉积)计算三角形的面积和多边形的面积

利用向量积(叉积)计算三角形的面积和多边形的面积: 向量的数量积和向量积: (1)  向量的数量积   (1)  向量的向量积 两个向量a和b的叉积(向量积)可以被定义为: 在这里θ表示两向量之间的角夹角(0° ≤ θ ≤ 180°),它位于这两个矢量 所定义的平面上. 向量积的模(长度)可以解释成以a和b为邻边的平行四边形的面积.求三角形ABC的面积,根据向量积的意义,得到: a=axi+ayj+azk; b=bxi+byj+bzk; a×b=(aybz-azby)i+(azbx-axbz)j