第六周项目三—平面坐标点类

/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: object.cpp
* 作者:杨晨
* 完成日期: 2013年4 月 5 日
* 版本号: 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;
}
void CPoint::input()
{
cout<<"请输入横坐标x,纵坐标y。";
cin>>x>>y;
}
void CPoint::output()
{
cout<<"("<<x<<","<<y<<")"<<endl;
}
double CPoint::Distance(CPoint p) const
{
return sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));  
}
double CPoint::Distance0() const
{
return sqrt((x*x)+(y*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;
}
int main()
{
CPoint p1,p2,p;
cout<<"点P1,";
p1.input();
cout<<"点P2,";
p2.input();
cout<<"两点间的距离为:"<<p1.Distance(p2)<<endl;
cout<<"p1到原点的距离为:"<<p1.Distance0()<<endl;
cout<<"p1关于X,Y,原点的对称点为:"<<endl;
p=p1.SymmetricAxis('x');   
p.output();  
p=p1.SymmetricAxis('y');    
p.output();  
p=p1.SymmetricAxis('o');   
p.output();  
return 0;
}


输出结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
书名 版权 前言 第一部分 C#的基本数据类型、数组类型和图形基础第1章 C#语言基础 1.1 数据类型 1.1.1 简单类型 1.1.2 结构类型 1.1.3 枚举类型 1.1.4 数组类型 1.1.5 类类型 1.1.6 类型转换 1.2 类 1.3 接口 1.4 委托与事件 第2章 图形基础 2.1 笔和画刷 2.1.1 Pen类 2.1.2 Brush类 2.2 基本图形形状 2.2.1 点 2.2.2 直线和曲线 2.2.3 矩形、椭圆形和圆弧形 2.2.4 多边形 2.3 颜色 2.4 双倍缓存 第3章 坐标系统和颜色变换 3.1 坐标系统 3.2 颜色变换 第二部分 二维图形的基本算法 第4章 二维矩阵和变换 4.1 矩阵基础和变换 4.2 齐次坐标 4.2.1 齐次坐标中的缩放 4.2.2 齐次坐标中的平移 4.2.3 齐次坐标中的旋转 4.2.4 变换组合 4.2.5 C#中矩阵的定义 4.2.6 C#中的矩阵操作 4.2.7 C#中基本的矩阵变换 4.3 C#中图形对象的变换 基本变换 4.4 C#中的多对象变换 4.5 文字变换 第5章 二维线形图形 5.1 序列化和反序列化及二维图形的基本框架 5.1.1 C#序列化和反序列化 5.1.2 二维图形的基本框架 5.2 二维图形 5.2.1 简单实例 5.2.2 图例 5.2.3 符号 5.2.4 对数比例 5.2.5 图形的修饰 5.3 阶梯状图 5.4 多Y轴图 第6章 特殊二维图形 6.1 创建柱状图 6.1.1 水平柱状图 6.1.2 垂直柱状图 6.1.3 图形充填柱状图 6.1.4 重叠柱状图 6.2 饼状图 6.3 误差图 6.4 股票图 6.4.1 最高最低收盘价股票图 6.4.2 最高最低开盘收盘价股票图 6.4.3 最高最低价股票图 6.4.4 K线图(阴阳烛图) 6.5 面积图 6.6 综合图 第部分 维图形的相关知识及维图形的实现第7章 维矩阵和变换 7.1 维数学概念 7.1.1 操作维对象 7.1.2 数学结构 7.2 维中的基本矩阵和变换 7.2.1 C#中维点和矩阵的操作 7.2.2 维的基本变换 7.3 方角和仰角 7.4 维图形中的特殊坐标系统 7.4.1 球坐标系统 7.4.2 圆柱坐标系统 7.5 特殊坐标中的实际应用 7.5.1 球坐标示例 7.5.2 双缓存 第8章 维图形 8.1 维图形基础 8.1.1 Point3和Matrix3类 8.1.2 ChartStyle类 8.1.3 坐标轴 8.1.4 网格线 8.1.5 标签 8.2 维折线图 8.3 维图形函数包 8.3.1 ChartStyle2D类 8.3.2 Point4类 8.3.3 DataSeries类 8.3.4 ChartFunctions类 8.3.5 DrawChart类 8.4 曲面图的实现 8.4.1 网格图 8.4.2 幕布网格图 8.4.3 瀑布网格图 8.4.4 曲面图 8.5 X-Y平面色彩图 8.6 轮廓图 8.6.1 轮廓图的算法 8.6.2 轮廓图的实现 8.7 组合图 8.7.1 维体系中的X-Y色彩图 8.7.2 维体系中的轮廓图 8.7.3 网格-轮廓组合图 8.7.4 曲面-轮廓组合图 8.7.5 填充曲面-轮廓组合图 8.8 维柱状图 实现柱状图 8.9 切片图 切片图的实现 第四部分 C#中应用微软Office的Excel实现各种二维维图形第9章 应用 程序中的Excel图表 9.1 Excel和C#间的互操作 9.2 C#应用程序中的Excel图表示例 9.2.1 Excel图表对象模型 9.2.2 创建独立的Excel图表 9.2.3 创建嵌入式Excel图表 9.3 更多的Excel图表 9.3.1 柱状图 9.3.2 饼状图 9.3.3 面积图 9.3.4 圆环图 9.3.5 雷达图 9.3.6 股价图 9.3.7 曲面图 9.3.8 颜色映射 9.4 整合Excel图表到Windows Forms应用程序中 9.4.1 Windows窗体上的独立Excel图表 9.4.2 Windows窗体上的嵌入式Excel图表 第五部分 实现文件的相关知识 第10章 文件的读/写 10.1 C#文件读/写常用类 10.1.1 System.IO.File类和System.IO.FileI nfo类 10.1.2 System.IO.Directory类和System.Dir ectoryInfo类 10.2 C#基于流的输入/输出 流的继承结构 10.3 文件读/写操作涉及的类 10.4 一些常见的问题及其解决方案 参考文献
由WGS-84坐标系到珠江平面坐标系(采用克拉索夫斯基椭球)的转换过程可以按以下步骤进行: 1. 根据珠江平面坐标系的定义,确定中央子午线经度和投影带号。这里以广州市为例,中央子午线经度为113度,投影带号为49。 2. 将WGS-84坐标系的经度和纬度转换为弧度制。 3. 根据克拉索夫斯基椭球的参数,计算出椭球的扁率f、第一偏心率e、第二偏心率e'。 4. 计算大地坐标系到空间直角坐标系的转换矩阵T,这里采用了五参数的转换模型,即T=[dx dy dz wx wy wz],其中dx、dy、dz为个平移参数,wx、wy、wz为个旋转参数。这些参数可以通过已知的控制点进行精确测定,这里不再赘述。 5. 根据WGS-84坐标系和珠江平面坐标系之间的转换关系,求出大地坐标系到珠江平面坐标系的转换参数。这里采用了高斯投影的方法,具体的计算公式可以参考相关文献或软件库。 6. 将大地坐标系转换为空间直角坐标系,可以使用公式X=T*(X0-Xs),其中X0为大地坐标系下的坐标,Xs为空间直角坐标系原点的坐标。 7. 将空间直角坐标系下的坐标转换为珠江平面坐标系下的坐标,可以使用公式Xp=P*(X-Xp0),其中X为空间直角坐标系下的坐标,Xp0为珠江平面坐标系原点的坐标,P为大地坐标系到珠江平面坐标系的转换矩阵。 以上就是由WGS-84坐标系到珠江平面坐标系的转换过程,需要注意的是,不同的坐标系之间的转换关系和具体的计算公式可能略有不同,具体的实现需要根据具体情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值