首页 > 编程知识 正文

用坐标表示三角形面积,用三角函数求三角形面积

时间:2023-05-05 03:19:52 阅读:208979 作者:3238

一、要求:

已知平面直角坐标系中两点(x1,y1)和(x2,y2)之间的距离公式为

,三角形面积的计算公式为。其中,a,b,c为三角形的三边长,s=(1/2)(a+b+c).是定义一个描述平面直角坐标系上点的类Point,利用友元函数求坐标系中由三个点构成的三角形面积。具体要求如下:

(1)私有数据成员

float x,y;坐标系中的一个点坐标。

(2)公有数据成员

Point(double ,double);构造函数,初始化成员,参数的缺省值为0。

void print();输出点的坐标,格式为(x,y)。

友元函数

double distance(Point,Point);计算两点之间的距离。

double area(Point,Point,Point);计算由参数构成的三角形的面积,假设给定的三个点能够构成三角形。

(3)在主函数中完成对该类的测试。定义三个类的对象p1,p2,p3,这三个点的坐标分别为(5,10),(1,67),(50,-25)。输入这三点坐标,计算并输出由这三个点构成的三角形的面积。程序正确的输出结果为:

三角形的顶点坐标为:(5,10)(1,67)(50,-25)三角形的面积为:1212.5


二、代码:

// Point.h#ifndef _POINT_H#define _POINT_H#include <math.h>class Point{private:float x,y;public:Point(double a, double b){x = a; y = b;}void print();friend double pointDistance(Point p1, Point p2);friend double area(Point p1, Point p2, Point p3);};#endif// Point.cpp#include <iostream>using namespace std;#include "Point.h"void Point:: print(){cout<<"("<<x<<","<<y<<")"<<" ";}double pointDistance(Point p1, Point p2){double distance = 0;distance = sqrt((p1.y-p2.y)*(p1.y-p2.y)+(p1.x-p2.x)*(p1.x-p2.x));return distance;}double area(Point p1, Point p2, Point p3){double area = 0;double a = 0, b = 0, c = 0, s = 0;a = pointDistance(p1, p2);b = pointDistance(p2, p3);c = pointDistance(p1, p3);s = 0.5*(a+b+c);area = sqrt(s*(s-a)*(s-b)*(s-c));return area;}// PointMain.cpp#include <iostream>using namespace std;#include "Point.h"int main(){Point p1(5, 10);Point p2(1, 67);Point p3(50, -25);cout<<"三角形顶点坐标为:";p1.print();p2.print();p3.print();cout<<endl;cout<<"三角形面积为:";cout<<area(p1, p2, p3)<<endl;return 0;}
三、运行结果:


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。