是否有任何已知方法可以快速有效地确定 3D 点是否位于已知大小的柏拉图体积内?
这对于立方体(六面体)或圆(椭圆体)来说似乎很容易。我似乎无法弄清楚四面体、八面体、十二面体或二十面体。我猜可能可以将形状分解成几个子实体,然后检查每个子实体,但如果可能的话,我想避免使用任何类型的迭代求解器。
对不起我的英语,但我是意大利人...我想创建一个代码来计算点(具有两个坐标)是否在具有凹角和凸角的多边形内。我尝试了很少的代码,因为太难了..
var polygon = [
[71.99999994,38.999999714],
[71.000000057,38.999999714],
[69.999999998,38.999999714],
[69.999999998,38.000000007],
[68.999999939,38.000000007],
[67.99999988,38.000000007],
[67.99999988,38.999999714],
[67.99999988,39.999999597],
[68.999999939,39.999999597],
[68.999999939,41.000000008],
[69.999999998,41.000000008],
[71.000000057,41.000000008],
[71.99999994,41.000000008],
[71.99999994,39.999999597],
[71.99999994,38.999999714]
];
var point= [68,38.5];
Run Code Online (Sandbox Code Playgroud)
我希望你能帮助我...
非常感谢
凹面(非凸面)多边形的对角线(对角线是连接不相邻顶点的线段)可以完全在多边形之内或之外(或者可以与多边形的边缘相交).如何确定它是否完全在多边形中?(没有多边形点测试的方法).
假设我有两个代表A行的点,例如:
var A = [ { x: 385, y: 380 }, { x: 420, y: 400 }]
Run Code Online (Sandbox Code Playgroud)
我还有另外两点B和C,例如:
var B = { x: 385, y: 420 }
var C = { x: 405, y: 423 }
Run Code Online (Sandbox Code Playgroud)
我如何确定B和C是否都在A行的同一侧?为了添加一点上下文,我试图对六边形进行命中测试,其中B是六边形的中心点,C是当前鼠标位置,A是六边形的每条线.所有这些点基本上都是像素坐标,其中0,0是左上角.
我不需要这个快速开始我只是想尝试创建最简单的六边形命中测试算法.我的理论是,如果我能确定C与六边形的每条线的同一侧与B相同,则命中测试成功.我已经阅读了几个数学算法来做这个,但它们似乎总是在不同类型的坐标系中,我很难将它转换为可用于javascript的东西.
编辑:这是我的实际六角函数给出以下答案.这个问题的答案在更新功能中.
var TILE_WIDTH = 70
var TILE_HEIGHT = 80
function Hexagon(x, y) {
var normalColor = 'rgb(207, 226, 243)'
var hilightColor = 'rgb(204, 204, 204)'
var currentColor = normalColor
var coords = new TileCoordinates(x, y)
var points = [
{ x: …Run Code Online (Sandbox Code Playgroud) 我有以下参数
如何检查点是否位于矩形内?
任何指针将不胜感激.谢谢.
我有4个点创造了一些四边形,我想知道第五点是否介于两者之间.像这些图像:


无论第五点在哪里,我都需要知道第五点是否在其他4点创建的区域内.
也有4分能够移动.我怎么做?
我在这里看到了一些代码/sf/answers/204594491/,就像这样:
for (i = 0, j = nvert-1; i < nvert; j = i++) {...`
Run Code Online (Sandbox Code Playgroud)
当括号内有四个东西时,我不明白它是做什么的("i = 0","j = nvert-1","i <nvert"和"j = i ++").我显然一直试图谷歌这个,但似乎无法找到任何答案.我敢肯定,如果我只知道括号中的内容被称为我会很高兴.
谢谢
我有2个六面固体.唯一的保证是它们每个都有8个vertex3f(带有x,y和z分量的顶点).鉴于此,我怎样才能知道这些是否相撞?
是否可以使用iOS 5 API检查给定的经度和纬度是否属于给定的GeoFence?怎么样?
我正在尝试创建一个函数,True如果给定的(x,y)点在凸多边形内,它将返回.我试图使它没有numpy或任何类似的导入,只是纯python代码.
我已经找到了一个示例解决方案,乍一看似乎没问题,但它无法正常工作,我无法弄清楚原因.代码如下:
def point_in_poly(x,y,poly):
n = len(poly)
inside = False
p1x,p1y = poly[0]
for i in range(n+1):
p2x,p2y = poly[i % n]
if y > min(p1y,p2y):
if y <= max(p1y,p2y):
if x <= max(p1x,p2x):
if p1y != p2y:
xints = (y-p1y)*(p2x-p1x)/(p2y-p1y)+p1x
if p1x == p2x or x <= xints:
inside = not inside
p1x,p1y = p2x,p2y
return inside
Run Code Online (Sandbox Code Playgroud)
如果我测试它为(9,9),对于下面的多边形,它给了我True:
polygon = [(0,10),(10,10),(10,0),(0,0)]
point_x = 9
point_y = 9
print point_in_poly(point_x,point_y,polygon)
Run Code Online (Sandbox Code Playgroud)
但是当我改变多边形点的顺序时,对于同一点,它给了我False:
polygon = [(0,0), …Run Code Online (Sandbox Code Playgroud)