平面坐标点类

2024-02-12 00:38
文章标签 平面坐标 点类

本文主要是介绍平面坐标点类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: object.cpp
* 作者:隋 鑫
* 完成日期: 2013 年 4 月 9 日
* 版本号: v1.0
* 输入描述:无
* 问题描述:
* 程序输出:
*/
#include <iostream>
#include <Cmath>
using namespace std;
class CPoint
{
private:
double x;  // 横坐标
double y;  // 纵坐标
public:
CPoint(double xx=0,double yy=0);
double Distance(CPoint p) const;   // 两点之间的距离(一点是当前点,另一点为参数p)
double Distance0() const;          // 到原点的距离
CPoint SymmetricAxis(char style)const;//style取'x','y'和'o'分别表示按x轴, y轴, 原点对称
void input();  //以x,y 形式输入坐标点
void output(); //以(x,y) 形式输出坐标点
};
CPoint::CPoint(double xx,double yy)
{
x=xx;
y=yy;
}
// 求两点之间的距离
double CPoint::Distance(CPoint p) const
{
double d;
d=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));
return d;
}
// 求点到原点的距离
double CPoint::Distance0() const
{
double d;
d=sqrt(x*x+y*y);
return d;
}
// 求对称点, style取'x','y'和'o'分别表示按x轴, y轴, 原点对称
CPoint CPoint::SymmetricAxis(char style) const
{
CPoint p(this->x,this->y);
switch(style)
{
case 'x':
p.y=-y; break;
case 'y':
p.x=-x; break;
case 'o':
p.x=-x;p.y=-y;
}
return p;
}
// 输入坐标点
void CPoint::input()
{
char c;
cout<<"请输入坐标点(格式x,y ):";
while(1)
{
cin>>x>>c>>y;
if (c==',') break;
else
cout<<"输入的数据格式不符合规范,请重新输入:";
}
}
// 输出坐标点
void CPoint::output()
{
cout<<"("<<x<<", "<<y<<")"<<endl;
}
int main( )
{
double distance;
CPoint p1,p2,p;
cout<<"第1个点p1,";
p1.input();
cout<<"第2个点p2,";
p2.input();
distance=p1.Distance(p2);
cout<<"两点的距离为:"<<distance<<endl;
distance=p1.Distance0();
cout<<"p1到原点的距离为:"<<distance<<endl;
p=p1.SymmetricAxis('x');
cout<<"p1关于x轴的对称点为:";
p.output();
p=p1.SymmetricAxis('y');
cout<<"p1关于y轴的对称点为:";
p.output();
p=p1.SymmetricAxis('o');
cout<<"p1关于原点的对称点为:";
p.output();
return 0;
}

运行结果:

这篇关于平面坐标点类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/701237

相关文章

java将经纬度转换为平面坐标

(米勒投影)算法 public static double[] MillierConvertion(double lat, double lon) { double L = 6381372 * Math.PI * 2;//地球周长 double W=L;// 平面展开后,x轴等于周长 double H=L/2;// y轴约等于周长一半 double mill=2.3;// 米勒投影

项目三(平面坐标点类)

/* *程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称:Cpoint .cpp * 作 者: 田凤 *完成日期:2013年4月9日 * 版本号: v1.0

C++第6周项目3 - 平面坐标点类

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8748730 【项目3】设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等 class CPoint{private:do

C++第11周项目1、2 - 点类派生出直线类

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8894095 【项目1】定义点类,并以点类为基类,派生出直线类,从基类中继承的点的信息表示直线的中点。请阅读下面的代码,并将缺少的部分写出来。 #in

WGS-84、北京54、西安80空间坐标转平面坐标

WGS-84、北京54、西安80空间坐标转平面坐标 Arcgis中有一些强大的功能不容易被发现,比如这个WGS-84、北京54、西安80空间坐标转平面坐标的功能。其实实现的方法比较简单。一般需求描述如下:手头上有研究站点位置的点shaple文件,但是站点位置信息是经纬度坐标,当要应用转换公式计算各个站点之间的距离时候,特别繁琐。当我们细心思考时候会发现arcgis中不同对象的空间坐标叠加时候,在

第十一周项目一·项目二----定义点类

/** 程序的版权和版本声明部分* Copyright (c)2013, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: object.cpp* 作者:赵晓晨* 完成日期: 2013年05月10日* 版本号: v1.0* 输入描述:无* 问题描述:无* 程序输出:无*/#include <iostream>#include<Cmath>u

点到直线垂足坐标c语言,平面坐标里计算点到线段的垂足问题

如图,以左上为原点的坐标图,坐标都为正 已知任意直线的点A,B, 和直线外一点C 目前用向量法还是直线方程的方法,然后都有偏移的情况 。 向量法结果在A点,直线方程结果在CB线上。 (另外线AB方向是不确定的,可能是AB也可能是BA, 可能是各种方向上) 现在的方法有时是正常的,有时是错误的, 图上是错误时的用例 向量法// 求垂足座标, C(x0,y0), A(x1, y1) B(x2, y

WGS84大地坐标转目标椭球平面坐标完整代码和步骤___含高精度高斯投影(正算)

WGS84大地坐标转目标椭球平面坐标完整代码和步骤___含高精度高斯投影(正算) 最近摸索高精度坐标解算,从WGS84椭球大地坐标转换到目标椭球平面坐标,大都是四步,总结大多公式,如下: 1、从大地坐标转换到空间直角坐标,同椭球,公式基本一致。 VB代码:Dim e2 As Double, N As Doublee2 = 1 - (1 - 1 / f) ^ 2 N = a / Sqr(1

球形摄像机平面坐标与3D坐标转换算法

球形摄像机是一种常见的外形类似椭球形的监控摄像机,街道十字路口一般都有挂。 其内部一般有一颗机芯,同时有三颗分别控制pan(水平) tilt(垂直) zoom(倍率)的步进电机(实际上带zoom电机的镜头通常因为聚焦的需要通常会匹配一个focus电机,但是二者在一个维度,所以通常看做一个抽象)。 球形摄像机模型图    因为一个预览界面中的某个点相对于预览平面是固定的,而一个预览解决相对

Java实现判断平面坐标中四个坐标值能否构成正方形

本程序主要实现输入平面坐标系中四边形四个顶点的坐标值并判断是否是正方形。在程序中首先需要输入待判断的四边形个数,然后依次输入各四边形四个顶点的坐标值,每个四边形的坐标由两行数据组成,第一行数据是四个顶点的横坐标值,第二行数据是四个顶点对应的纵坐标值,如果是正方形则输出“yes”,不是则输出“no”。如下图所示,需要判断的四边形个数是3个,第一个四边形四个顶点的坐标是(0,0)、(1,0