//本程序有三个层次

//第一层(define_class.h):构造坐标点类,颜色和宽度的结构体,线段类

//第二层(function.h):对上一层声明的函数进行定义

//第三层(distance.cpp):用类定义对象并初始化对象,对结果进行测试

define_class.h

#if!defined(define_class_H)
#define define_class_h
#include <iostream>
#include <cmath>
using namespace std;
//定义坐标点类
class Point
{
private:
  double X,Y; //横坐标、纵坐标作为私有变量
public:
  Point(double=0,double=0); //构造函数

  Point(Point &); //复制的构造函数

  void Display() //显示坐标点
  {
    cout<<X<<","<<Y<<endl;
  }

  double Distance(Point &); //两点间距离的函数,参数是点类的引用,也可以用友元函数

  int getX()
  {
    return X; //得到横坐标的值
  }

  int getY()
  {
    return Y; //得到纵坐标的值
  }
};

struct Cow //color和width,结构体,结构体内的变量是public的
{
  int Color;
  int Width;
};

class Line //定义线段类
{
  private:
  Point a,b; //线段类的私有数据成员是点类的对象
  Cow cw; //线段有颜色和宽度
  public:
  Line(Point &,Point &,Cow &); //线段的构造函数,由两个点、颜色和宽度构成
  void Display();
  Line(Line &); //复制的构造函数
  double Distance(); //两点间的距离
  double Area(); //线段的面积
};

#endif

function.h

#if!defined(function_H)
#define function_H
#include "define_class.h" //包含头函数
Point::Point(double a,double b) //定义构造函数,前面的头函数中仅仅声明了函数
{
  X=a;
  Y=b;
}
Point::Point(Point &a) //定义复制的构造函数
{
  X=a.X;
  Y=a.Y;
}
double Point::Distance(Point &a) //求两点间的距离
{
  double dis;
  dis=sqrt((X-a.X)*(X-a.X)+(Y-a.Y)*(Y-a.Y));
  return dis;
}
Line::Line(Point &a1,Point &a2,Cow &a3):a(a1),b(a2),cw(a3) //给Line的私有变量初始化
{ //对象间的初始化,因此需要复制的构造函数
}
Line::Line(Line &s) //定义复制的构造函数
{
  a=s.a;
  b=s.b;
  cw=s.cw;
}
void Line::Display() //显示线段
{
  a.Display();
  b.Display();
  cout<<"Color="<<cw.Color<<","<<"width="<<cw.Width<<endl;
}
double Line::Distance()
{
  double x,y;
  x=a.getX()-b.getX();
  y=a.getY()-b.getY();
  return sqrt(x*x+y*y);
}
double Line::Area()
{
  return cw.Width * Distance();
}
#endif

distance.cpp

#include <iostream>
#include <cmath>
#include "function.h"
using namespace std;

void main()
{
  Point a;
  Point b(8.9,9.8),c(34.5,67.8);
  a=c;
  a.Display();
  b.Display();

  cout<<"两点之间的距离:"<<a.Distance(b)<<endl;

  Cow cw={3,5};

  Line s(a,b,cw);

  Line s1(s);

  s1.Display();

  cout<<"线段的长度:"<<s1.Distance()<<endl;
  cout<<"线段的面积:"<<s1.Area()<<endl;
}

转载于:https://www.cnblogs.com/duanqibo/p/11096455.html

用c++定义两个坐标点,计算两点间距离;进而计算线段的面积相关推荐

  1. c++求两点的距离利用友元_用c++定义两个坐标点,计算两点间距离;进而计算线段的面积...

    //本程序有三个层次 //第一层(define_class.h):构造坐标点类,颜色和宽度的结构体,线段类 //第二层(function.h):对上一层声明的函数进行定义 //第三层(distance ...

  2. CAD坐标点、经纬度坐标点转ARCGIS矢量,求重叠面积

    因工作需要尝试了很多次,记录一下,有缘帮助到大家的话,很开心.(如提供某工业区坐标点;求其与已有矢量的重叠面积) CAD格式的点数据: 通常可能CAD数据是没有加带号偏移的(例如:570058.6 3 ...

  3. MTCNN中celebA数据集的处理(一个置信度,两个坐标点)

    我处理这个数据集是用来训练MTCNN网络的,celebA数据集由202599张人脸组成,这里主要是将样本扩容,即在原有的图片上抠图. 因为上面是MTCNN的框架,由P,R,O三个网络组成,P网络输入的 ...

  4. python计算两点间距离_python 计算方位角实例(根据两点的坐标计算)

    知道两点坐标,怎么计算两点方向的方位角? 答:首先计算坐标增量dx,dy(两个对应坐标分量相减,终点的减始点的). 若dx,dy中有一个为零时,根据另一个的正负决定方位角(0,90,180,270这四 ...

  5. html GPS坐标实现,JavaScript 实现GPS坐标点距离计算(两个经/纬度间的距离计算)...

    在LBS(基于位置服务)的一些应用中,有时我们会需要计算两个用户或两个坐标点之间的距离.要解决这类问题,就要了解空间几何的概念并结合数学中在三角函数公式计算两点之间的值.本文介绍基于经度/纬度的,两个 ...

  6. 练习题记录:求解距离矩阵,首先生成一百个二维坐标点,计算任意两个坐标点的距离

    碰到一道练习题:求解距离矩阵,首先生成一百个二维坐标点,计算任意两个坐标点的距离.我一开始看到这题目是一脸懵逼,然后上网找了一下,更是二脸懵逼.生成一百个二维坐标点,我首先就是想去生成一个1010的二 ...

  7. 定义一个结构体类型Point,包含数据成员x和y,它们是平面坐标系下的坐标点(x,y),求两点间的距离

    题目描述:定义一个结构体类型Point,包含数据成员x和y,它们是平面坐标系下的坐标点(x,y).编写如下函数: (1)struct Point Input():在函数中输入一个坐标点的值,并返回该值 ...

  8. EXCEL中批量计算“已知一点坐标、方位角、距离,求坐标点”

    前言 日常工作中有时需要计算已知点.正本方位角.距离计算坐标点.如下图 已知:蓝点坐标.正本方向夹角为方位角,蓝点与未知点(红色)之间的距离,求红色点坐标. 小O地图Excel插件版提供在excel表 ...

  9. Cesium坐标转换:根据两个坐标点(坐标点a、坐标点b)的经纬度,计算a点和b点的角度

    计算a点和b点的角度(偏行角:逆时针)  /*** 计算a点和b点的角度(偏行角)* @param lng_a a点经度* @param lat_a a点维度* @param lng_b b点经度* ...

最新文章

  1. 计算机二级关于数据结构的题目,计算机二级MS OFFICE 练习题(一五三)
  2. shell语法简单介绍
  3. 第14件事 分析竞争对手的方法
  4. java中集合的结构(list和map)
  5. CSS背景颜色转换(自动生成IE8以下的filter,兼容IE9)
  6. SAP BC417 课程中文自学笔记
  7. Mahout的taste推荐系统里的几种Recommender分析
  8. Strange Partition CodeForces - 1471A
  9. 解决hive交互模式退格键乱码
  10. centos7 安装git_Centos7.4 Yapi 服务搭建
  11. 音视频开发(15)---IPC+NVR+路由器+ffmpeg+nginx实现网页/Android/IOS的HLS直播
  12. Linux系统挂载新硬盘
  13. 启发式算法、寻路算法A*算法
  14. Coursera 斯坦福大学科学论文写作课程笔记(一)
  15. 2021年电工(技师)考试内容及电工(技师)复审考试
  16. stringexample.java_给出如下声明:String s = “Example”; 合法的代码有哪些?()_学小易找答案...
  17. 天天向上的力量python代码解释_小白学Python-12(天天向上的力量)
  18. 桌面上的计算机图片怎么复制,怎么把一张普通的图片复制到EXCEL表格中
  19. 三菱FX2NPLC 定时器和计数器(1)
  20. -I (大写i)、-L、-l(小写L) 的使用

热门文章

  1. c语言 if判断条件语句吗,if条件判断语句,谁能帮我分析一下?
  2. 四个程序员恋爱必学的聊天知识点!
  3. python二维向量运算模拟_Python数学基础之向量定义与向量运算(附代码)
  4. 使用mongoose来创建嵌入式websocket客户端和http客户端
  5. webservice无法理解soap头action_数学是对理解的追求,而不仅仅是追求计算
  6. 复杂多目录的Makefile模板及示例
  7. Elasticsearch】Elasticsearch 25 个必知必会的默认值
  8. 【kafka】Kafka Producer Sticky Partitioner kafka 生产者 粘性 分区器
  9. 【MySQL】mysql show操作简单示例
  10. 95-130-346-源码-source-kafka相关-KafkaConsumerThread