0
这是一个家庭作业问题,但我一直在拖延一段时间,并且一直无法获得100%准确的答案。给定一个多边形,我必须找到该多边形内任意随机顶点的内角。我一直在做的是先取得顶点和后面的顶点,然后计算入射角(比如说我把我的顶点看作B),然后我做边AB和BC,然后找出每个的大小,然后除两者的点积乘以每个的量值。查找凸多边形中向量之间的交集程度
我仍然关闭,尤其是在我有矢量(0,10),(0,0),(10,0)的情况下。显然,中间向量的内角是90度,但是当我使用幅度和点积来计算它时,出于某种奇怪的原因,我得到了45度。
这里是我的代码
double dx21 = one.x - two.x;
double dx31 = one.x - three.x;
double dy21 = one.y - two.y;
double dy31 = one.y - three.y;
double m12 = Math.sqrt(dx21*dx21 + dy21*dy21);
double m13 = Math.sqrt(dx31*dx31 + dy31*dy31);
double theta = Math.acos((dx21*dx31 + dy21*dy31)/ (m12 * m13));
System.out.println(theta);
System.out.println(Math.toDegrees(theta));
有什么一清二楚的是,我已经错过了?我沿逆时针方向遍历顶点,因为这是组织的方式。
在我提交请求后大约15分钟就意识到了这一点!谢谢! – Schroedinger 2012-03-25 06:56:09