草庐IT

c++ - 使用 boost 几何检查两条线是否有交点

是否可以使用boost::geometry来检查两条线段(每条线段由2D中的两个点给出)是否相互相交?如果这是可能的,boost::geometry是否也允许检查特殊情况,例如另一条线上只有一个点(数字上),或者两条线相等? 最佳答案 如果您专门谈论Boost.GeometryAPI,那当然是可能的。你的代码应该大致如下所示#include#includetypedefboost::geometry::model::segmentSegment;SegmentAB(Point(x1,y1),Point(x2,y2));Segment

java - 找到两个 3D 多边形的交点

又名3D中的多边形裁剪算法又名找到2个碰撞多边形之间的碰撞流形大多数用于多边形裁剪的算法都针对2D进行了详细描述,并描述为可扩展到3D但没有详细信息。例如sutherland-hodgmanclippingalgorithm由于无法在互联网上找到任何3D实现或伪代码,我现在在这里提问(并试图回答我自己的问题)该算法将采用两种形状,如下所示:并且会输出两个形状的交集,如下所示:请注意,尽管Sutherland-Hodgman算法找到了两个多边形的交集,但它(以及大多数其他算法)在裁剪多边形和裁剪多边形之间进行了区分;裁剪多边形可以是凹的或凸的,但裁剪形状必须是凸的。但是,我扩展到3D的实

python - 通过减去与另一个多边形的交点来创建新的形状多边形

我有两个相交于不同部分的形状匀称的MultiPolygon实例(由经度、纬度点组成)。我正在尝试循环,确定两个多边形之间是否存在交集,然后创建一个排除该交集的新多边形。从附图来看,我基本上不希望红色圆圈与黄色轮廓重叠,我希望边缘恰好位于黄色轮廓开始的位置。我已尝试按照说明进行操作here但它根本不会改变我的输出,而且我不想将它们合并到一个级联联合中。我没有收到任何错误消息,但是当我将这些MultiPolygons添加到KML文件时(只是python中的原始文本操作,没有花哨的程序)它们仍然显示为圆圈而没有任何修改。#multipol1andmultipol2aremyshapelyMu

python - 如何以有效的方式找到两个轮廓集之间的所有交点

我想知道找到两组等高线之间所有交点(舍入误差)的最佳方法。哪种方法最好?这是示例:importmatplotlib.pyplotaspltimportnumpyasnpx=np.linspace(-1,1,500)X,Y=np.meshgrid(x,x)Z1=np.abs(np.sin(2*X**2+Y))Z2=np.abs(np.cos(2*Y**2+X**2))plt.contour(Z1,colors='k')plt.contour(Z2,colors='r')plt.show()我想要一些类似于:intersection_points=intersect(contour1,co

python - 如何找到两条线段的交点?

假设我们有两条有限线段,每条线段由两个点(在两个空间中)定义。我想找到一种方法来获得这两条线的交点。最终,我想将其扩展到处理连接的线段集。我在这里找到了一个很好的解决方案:Python-matplotlib:findintersectionoflineplots.然而,这依赖于scipy,我认为它需要BLAS,出于不同的原因我想避免。matplotlib有一个名为Path的模块,它有一个intersects_path()函数(http://matplotlib.org/api/path_api.html#matplotlib.path.Path.intersects_path),它返回

python - 如何在Python中找到一条直线和多条曲线的交点?

我有图中显示的数据。曲线是外推的,我有一条线,其方程是已知的。曲线方程未知。现在,如何找到这条线与每条曲线的交点?可重现的代码:importnumpyasnpimportmatplotlib.pyplotaspltfromscipyimportinterpolatex=np.array([[0.12,0.11,0.1,0.09,0.08],[0.13,0.12,0.11,0.1,0.09],[0.15,0.14,0.12,0.11,0.1],[0.17,0.15,0.14,0.12,0.11],[0.19,0.17,0.16,0.14,0.12],[0.22,0.19,0.17,0.1

python - nD线与Python中凸包的交点

我使用scipy.spatial.ConvexHull创建了一个凸包。我需要计算凸包和射线之间的交点,从0开始并沿其他定义点的方向。已知凸包包含0,因此应保证相交。问题的维度可能在2到5之间变化。我尝试了一些谷歌搜索但没有找到答案。我希望这是计算几何中已知解决方案的常见问题。谢谢。 最佳答案 根据qhull.org,凸包的一个面的点x验证V.x+b=0,其中V和b由hull.equations给出。(.代表这里的点积。V是一个长度为1的法向量。)IfVisanormal,bisanoffset,andxisapointinsidet

python - 贝塞尔曲线与线段的交点

我正在用Python(使用pygame)编写一个游戏,它要求我为每个新游戏生成随机但漂亮的“海”。经过长时间的搜索,我确定了一种算法,该算法涉及padlib.py中定义的贝塞尔曲线。.我现在需要弄清楚padlib生成的曲线何时与线段相交。蛮力法是仅使用padlib生成的一组近似线段来找到答案。但是,我怀疑可以通过分析找到更好的答案。我只有几十个样条线段-搜索它们应该比搜索数千条线段更快。一点点搜索让我走上了这条路:贝塞尔曲线->Kochanek-BartelsSpline->CubicHermitespline在最后一页,我找到了这个函数:p(t)=h00(t)p0+h10(t)m0+

python - 在 python 中找到直线和圆的交点的最有效方法是什么?

我有一个由很多点组成的多边形。我想找到多边形和圆的交点。提供[x0,y0]的圆心和r0的半径,我写了一个粗略的函数来简单地求解圆和直线的二次方程。但是将多边形的每条线段逐条求交点效率如何呢?有没有更高效的方法?我知道sympy已经提供了获取不同几何图形交集的功能。而且如果我想处理很多多边形,与通过我自己的函数计算相比,像sympy这样的外部库的效率如何?defLineIntersectCircle(p,lsp,lep):#pisthecircleparameter,lspandlepisthetwoendofthelinex0,y0,r0=px1,y1=lspx2,y2=espifx1

ios - 画线 + 该线与自身的交点,并检测该画线内的 CCSprite

我正在使用以下代码绘制线条,效果非常好,http://www.merowing.info/2012/04/drawing-smooth-lines-with-cocos2d-ios-inspired-by-paper/现在我想......1>检测直线是​​否与自身相交。2)检测CCSprite是否在这条闭合线内。在搜索时,我发现了LineIntersection的许多逻辑,但没有一个是准确的。我给出了其中一个检测交叉点的方法,但是当没有线的交叉点时它也会检测到它。第一种方法-(BOOL)lineIntersectOccured:(CGPoint)t1pointEnd:(CGPoint)