相关疑难解决方法(0)

如何检测两个线段相交的位置?

如何确定两条线是否相交,如果它们相交,在x,y点处是什么?

geometry line-intersection

519
推荐指数
17
解决办法
41万
查看次数

如何确定2D点是否在多边形内?

我正在尝试在多边形算法中创建一个快速 2D点,用于命中测试(例如Polygon.contains(p:Point)).对于有效技术的建议将不胜感激.

graphics performance polygon collision-detection point-in-polygon

473
推荐指数
15
解决办法
26万
查看次数

逆时针从V1到V2时,如何判断V3是否介于V1和V2之间?

我有三个向量V1,V2和V3.它们的起点是轴的起源.当我从V1逆时针移动到V2时,如何确定V3是否介于V1和V2之间?

alt text http://www.freeimagehosting.net/uploads/1448ea8896.jpg

无法通过获取角度和评估这些条件(伪代码)来完成:

if angle(V3) > angle(V1) && angle(V3) < angle(V2) 
   printf("V3 is between V1 and V2") 
else 
   printf("out of the interval")
Run Code Online (Sandbox Code Playgroud)

为了看到它的缺陷,假设该angle函数给出了[-pi pi]范围内的角度.因此,如果角度(V1)= 120(度),角度(V2)= -130,角度(V3)= 150,那么答案(根据上面的代码)是"超出间隔",但如果你四处走动逆时针从V1到V2,它们介于它们之间.

您可能建议将2*pi添加到角度(V2)或类似的东西,但我已经尝试过这样的东西而且它不起作用.

我在MATLAB中编程.

编辑1:它是2D.

matlab geometry vector angle

6
推荐指数
1
解决办法
2233
查看次数