菜鸟求助!!C++编写:已知两个点的坐标,求其中一个点的坐标方位角。

大观矩阵 2015-08-23 10:35:34
菜鸟求助!!C++编写:已知两个点的坐标,求其中一个点的坐标方位角。

本人测绘工程专业。初学C++,有关方位角代码实现问题。实在是搞不懂,太乱了。麻烦大神帮忙指点一二。
...全文
1015 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
mirro 2019-01-25
  • 打赏
  • 举报
回复
引用 7 楼 Code与我 的回复:
[quote=引用 5 楼 zhao4zhong1 的回复:] https://www.baidu.com/s?wd=%E6%96%B9%E4%BD%8D%E8%A7%92&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=10&rsv_sug1=23&rsv_t=195da2NWlCu3zpmQGcADBUVlzbaV6n8akm3R4DoF5b%2F1VQpmg7lGICWyUuSqwGXLuSTc
你给的啥啊这是。方位角定义啊。谁不会啊。关键是代码。你给这个有啥用啊。!!!!!气愤!!!!!我自己已经分析出来了!!
double Tri(Point p1,Point p2)//形参是Point类的对象p1,p2
{
	double angle;
	if (p1.x == p2.x && p1.y < p2.y)
		return 90.0;//如果x坐标相等,p1的y值小于p2的y值,则方位角是90
	if (p1.x == p2.x && p1.y > p2.y)
		return 270.0;//如果x坐标相等,p1的y值大于p2的y值,则方位角是270
	if (p1.y == p2.y && p1.x < p2.x)
		return 0.0;//如果y坐标相等,p1的x值小于p2的x值,则方位角是180
	if (p1.y == p2.y && p1.x > p2.x)
		return 180.0;//如果y坐标相等,p1的x值大于p2的x值,则方位角是180
	angle = atan((p1.y - p2.y) / (p1.x - p2.x))  *  (180.0 / M_PI); //得到弧度制的角
	if (p1.x < p2.x && p1.y < p2.y)
		return angle; //标准情况下正常输出。
	if (p1.x > p2.x)
		return 180.0 + angle;//angle正负都有可能。
	if (p1.x < p2.x && p1.y > p2.y)
		return 360.0 + angle;//angle是负值。
}
[/quote]两个向量内积不行吗?
大观矩阵 2019-01-18
  • 打赏
  • 举报
回复
引用 13 楼 MugSinix的回复:
作为一个RSer真是觉得好捉急,无非就是几种边缘情况的处理,这种东西和C++毫无关系,别人讽刺几句就挂不住面,太丢测绘人的脸了。
一副过来人的叼样子,真不谦虚
fcqm8888 2015-10-05
  • 打赏
  • 举报
回复
由所提问题看出,你在进步,坚持吧。
MugSinix 2015-08-31
  • 打赏
  • 举报
回复
作为一个RSer真是觉得好捉急,无非就是几种边缘情况的处理,这种东西和C++毫无关系,别人讽刺几句就挂不住面,太丢测绘人的脸了。
赵4老师 2015-08-25
  • 打赏
  • 举报
回复
自己动手,丰衣足食。
大观矩阵 2015-08-25
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
https://www.baidu.com/s?wd=%E6%96%B9%E4%BD%8D%E8%A7%92&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=10&rsv_sug1=23&rsv_t=195da2NWlCu3zpmQGcADBUVlzbaV6n8akm3R4DoF5b%2F1VQpmg7lGICWyUuSqwGXLuSTc
你给的啥啊这是。方位角定义啊。谁不会啊。关键是代码。你给这个有啥用啊。!!!!!气愤!!!!!我自己已经分析出来了!!
double Tri(Point p1,Point p2)//形参是Point类的对象p1,p2
{
	double angle;
	if (p1.x == p2.x && p1.y < p2.y)
		return 90.0;//如果x坐标相等,p1的y值小于p2的y值,则方位角是90
	if (p1.x == p2.x && p1.y > p2.y)
		return 270.0;//如果x坐标相等,p1的y值大于p2的y值,则方位角是270
	if (p1.y == p2.y && p1.x < p2.x)
		return 0.0;//如果y坐标相等,p1的x值小于p2的x值,则方位角是180
	if (p1.y == p2.y && p1.x > p2.x)
		return 180.0;//如果y坐标相等,p1的x值大于p2的x值,则方位角是180
	angle = atan((p1.y - p2.y) / (p1.x - p2.x))  *  (180.0 / M_PI); //得到弧度制的角
	if (p1.x < p2.x && p1.y < p2.y)
		return angle; //标准情况下正常输出。
	if (p1.x > p2.x)
		return 180.0 + angle;//angle正负都有可能。
	if (p1.x < p2.x && p1.y > p2.y)
		return 360.0 + angle;//angle是负值。
}
大观矩阵 2015-08-25
  • 打赏
  • 举报
回复
引用 4 楼 ye474324894 的回复:
1楼已经说的够清楚了
清楚毛线啊。问题我已经自己解决了。别一个个装的跟多厉害似的。答案哪有你们说的那么简单。我一共分析了七种情况。
double Tri(Point p1,Point p2)//形参是Point类的对象p1,p2
{
	double angle;
	if (p1.x == p2.x && p1.y < p2.y)
		return 90.0;//如果x坐标相等,p1的y值小于p2的y值,则方位角是90
	if (p1.x == p2.x && p1.y > p2.y)
		return 270.0;//如果x坐标相等,p1的y值大于p2的y值,则方位角是270
	if (p1.y == p2.y && p1.x < p2.x)
		return 0.0;//如果y坐标相等,p1的x值小于p2的x值,则方位角是180
	if (p1.y == p2.y && p1.x > p2.x)
		return 180.0;//如果y坐标相等,p1的x值大于p2的x值,则方位角是180
	angle = atan((p1.y - p2.y) / (p1.x - p2.x))  *  (180.0 / M_PI); //得到弧度制的角
	if (p1.x < p2.x && p1.y < p2.y)
		return angle; //标准情况下正常输出。
	if (p1.x > p2.x)
		return 180.0 + angle;//angle正负都有可能。
	if (p1.x < p2.x && p1.y > p2.y)
		return 360.0 + angle;//angle是负值。
}
lm_whales 2015-08-25
  • 打赏
  • 举报
回复
atan2更准确点
大观矩阵 2015-08-25
  • 打赏
  • 举报
回复
引用 10 楼 ye474324894 的回复:
一个问题都问不清楚的人硬是讲别人没帮到他,还感觉自己叼叼的 我要是老师我也蛮急的,呵呵.......
看来你很叼啊。没提出什么方式还有资格在这里喷吗?我也是醉了。。。呵呵··。。。
Tsuigod 2015-08-25
  • 打赏
  • 举报
回复
一个问题都问不清楚的人硬是讲别人没帮到他,还感觉自己叼叼的 我要是老师我也蛮急的,呵呵.......
大观矩阵 2015-08-25
  • 打赏
  • 举报
回复
编不出来是真着急啊。我们老师急的要死!@!应该把你的话说给它听!
赵4老师 2015-08-24
  • 打赏
  • 举报
回复
复习《高中数学》
fly_dragon_fly 2015-08-24
  • 打赏
  • 举报
回复
什么是方位角
Tsuigod 2015-08-24
  • 打赏
  • 举报
回复
1楼已经说的够清楚了
永夜将尽 2015-08-23
  • 打赏
  • 举报
回复


#include<math.h>

//反余弦函数:acos()
double acos(double x)
//反正弦函数:asin()
double asin(double x)
//反正切函数:atan()
double atan(double x)

自己慢慢琢磨吧。刚开始学都难,不琢磨永远都不会。祝你好运。

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧