社区
C++ 语言
帖子详情
高中的一个知识#忘了。
lybapple
2003-12-19 10:09:33
从一中心点发出n条射线,
怎么得到离其中某一条射线在逆时针方向上偏离它最远的那条射线??
注:
已经知道:中心点的坐标和那n条射线上的某一点的坐标。
也就是总共n+1个点的坐标。
...全文
134
17
打赏
收藏
高中的一个知识#忘了。
从一中心点发出n条射线, 怎么得到离其中某一条射线在逆时针方向上偏离它最远的那条射线?? 注: 已经知道:中心点的坐标和那n条射线上的某一点的坐标。 也就是总共n+1个点的坐标。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wildcat1984
2003-12-20
打赏
举报
回复
#include <iostream.h>
#include <math.h>
class node{
public:
double angle;
double x;int y;
node(double a,double b):x(a),y(b){
double sina=x/sqrt(x*x+y*y),
cosa=y/sqrt(x*x+y*y);
angle=acos(cosa);
if(sina<0) angle=2*3.1415926-angle;
}
};
void main()
{node center(0,0);//假设已经平移过
node no[4]={node(2,1),node(-5,0),node(0,-5),node(-2,1)};
int num[4]={0,1,2,3};
for(int i=0;i<4;i++)
for(int j=0;j<3;j++)
if(no[num[j]].angle>no[num[j+1]].angle)
{num[j]=num[j]+num[j+1];
num[j+1]=num[j]-num[j+1];
num[j]=num[j]-num[j+1];
}
for(i=0;i<4;i++)
{cout<<no[num[i]].x<<endl<<no[num[i]].y
<<endl<<no[num[i]].angle<<endl<<endl;}
}
我只是把这四个点按角度大小排了一下序
:)
lybapple
2003-12-20
打赏
举报
回复
野猫的sina和cosa求反了,低级错误,呵呵!!
wildcat1984
2003-12-19
打赏
举报
回复
不过求出来的可能不是度数,而是弧度.
反余弦求出来的是0~~派,也就是得到4分之3派
再根据正弦为负,说明它应该大于派,
那么用2派减去3/4派就可以了
wildcat1984
2003-12-19
打赏
举报
回复
我觉得可以这样
设一个点(x,y)假设是(-1,1)吧
求正弦值.根号2.然后求余弦值.-根号2
然后反余弦求角度,是135或225(度).再根据
正弦值是正是负来
判断这个角大于还是小于180,就ok了
blvssss
2003-12-19
打赏
举报
回复
用余弦定理啊大哥们~~~~~~~~
cosc=(a2+b2-c2)/2ab
用3点坐标求出3条边长度,用公式算出余弦值,余弦值越大角度越小.不过要注意下方向~~~
lybapple
2003-12-19
打赏
举报
回复
主要是这个角度用什么好的方法来求,
因为是0-360的,
所以不是很好求阿,
要考虑方向的问题。
wildcat1984
2003-12-19
打赏
举报
回复
那么,求出这些角度,4是60(度,假设),1是180,2是270,3是300.
那么先找比4,60度小的射线----没有,然后找比360度小但是比
其他都大的射线----自然就是3了.可以先排序----
顺序是4,1,2,3,角度由小到大,
找比4还小的,没有,那么就直接找最后一个了
lybapple
2003-12-19
打赏
举报
回复
不好意思,最后一句是离射线4的角度最大。
lybapple
2003-12-19
打赏
举报
回复
4
/
/
/
/
1---\
| \
| \
| \
2 3
比如我的基线是4,要的是得到结果是3那条射线。
因为它在逆时针方向上,离3角度最大。
wildcat1984
2003-12-19
打赏
举报
回复
-----你不是说从一中心点发出n条射线,?
转换以后
那么这n条射线的起点都是原点拉
每条射线与x的夹角都在0~~2pi之间啊
lybapple
2003-12-19
打赏
举报
回复
不一定都是夹角。
--------\
\
\
上面就是一个钝角,而不是直线的夹角。
wildcat1984
2003-12-19
打赏
举报
回复
对了,好象不在单位圆上也可以求夹角
:)
wildcat1984
2003-12-19
打赏
举报
回复
我有一个想法:
改中心点0,0,相应地也改变其他点坐标.就是平移以下坐标轴.
然后把每个射线上的点坐标扩大几倍或缩小,使他们都在
单位圆上.
求出每条射线与x轴的夹角.
不知能否可行
lybapple
2003-12-19
打赏
举报
回复
是阿,就是怎么编程实现???????????
wildcat1984
2003-12-19
打赏
举报
回复
逆时针最远---就是顺时针最近啊
lybapple
2003-12-19
打赏
举报
回复
是的。
qinxi
2003-12-19
打赏
举报
回复
偏离最远是怎么定义的?角度范围?
高中
信息技术简答题汇总
高中
信息技术教资简答题汇总 1.简述域名解析的过程 客户机提出域名解析请求,将请求发送给本地的域名服务器。 当本都地的域名服务器收到请求的时候,就首先查询本地的缓存,如果有该项记录,则本地的域名服务器就直接把查询的结果返回 如果本地的缓存媒有收到该记录项,则本地的域名服务器就直接把请求发给根域名服务器,然后根据域名服务器
一个
所查讯的主的域名服务器的地址 本地服务器在向上一步域名服务器发送请求,然后接受服务器查询自己的缓存,如果没有记录项,则返回下级的域名服务器的地址 重复第四步,直到找到正确的记录 本地域
基于bert预训练
高中
知识
点的单轮对话机器人
基于bert预训练的单轮对话机器人
高中
生学python从哪里学起,
高中
生学生证怎么办理
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有
一个
学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!如果需要可以点击链接免费领取或者滑到最后扫描二v码👉[CSDN大礼包:《python学习路线&全套学习资料》免费分享]安全链接,放心点击👉Python学习大纲👈Python所有方向的技术点做的整理,形成各个领域的
知识
点汇总,它的用处就在于,你可以按照上面的
知识
点去找对应的学习资源,保证自己学得较为全面。👉。
高中
知识
点问答对话机器人设计与实现
本文还有配套的精品资源,点击获取 简介:本项目利用BERT预训练模型构建了
一个
高中
知识
点问答对话系统,该系统能够对用户提出的单轮问题进行理解和回答。通过在大规模无标注文本数据集上进行预训练,BERT模型学习到了语言的一般规律,并在
高中
知识
点相关的特定任务数据集上进行了微调,以适应问题回答的需求。对话系统构建中,BERT被用于理解问题,并匹配检索预先学习的
知识
库以生成回答。文...
小
知识
:C语言宏定义中 # 和 ## 符号的用法
在某些C语言代码中,有时我们可能会看到宏定义中带有#、##,这些符号有特殊的作用,下面我们用几个简单的例子来说明。 1)
一个
#的作用
一个
#的作用就是把后面的参数当做
一个
字符串,也就是说等同于把后面的宏变量加上双引号: 运行上述代码,可以得到输出: Hello world 1 Hello world 2 说明 #define PRINT(NAME) printf(#NAME)这个宏,等同于把NAME加上了双引号“”,即替换成了“NAME”,所以,第
一个
PRINT可以直接把括号内的内容..
C++ 语言
65,212
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章