草庐IT

线段树SegmentTree

全部标签

swift - CGPoint 到线段的最短距离

我一直在尝试实现Douglas-Peuckeralgorithm到我的代码中,我能够将伪代码转换为Swift,shortestDistanceToSegment函数除外。只有我能找到的Swift版本得到了回答here但我不明白那实际上是做什么的。我需要一个函数,它获取三个点作为参数(点和线的两端)并返回CGPoint和线段之间的最短距离。关于代码做什么(以及为什么)的一些解释会很好,但不是必需的。 最佳答案 来自https://stackoverflow.com/a/27737081/535275的回答w/变量重命名并添加了一些注释

java - 线段树java实现

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion您知道(二进制)segmenttree的良好实现吗?在java?

java - 如何检查2条线段是否相交?

如何检查2个线段L1(p1,p2)和L2(p3,p4)是否相互相交?我不需要交点,我只需要知道它们是否相交。由于我的应用程序计算了很多,我需要找到一个快速的解决方案。谢谢 最佳答案 要测试两条线段是否相交,可以使用Java的2DAPI,具体是Line2D的方法.Line2Dline1=newLine2D.Float(100,100,200,200);Line2Dline2=newLine2D.Float(150,150,150,200);booleanresult=line2.intersectsLine(line1);System

python - 使用 math.atan2 计算线段之间的角度(Python)

我正在处理空间分析问题,此工作流的一部分是计算连接线段之间的角度。每条线段只由两个点组成,每个点都有一对XY坐标(笛卡尔坐标)。这是来自GeoGebra的图片。我一直对获得0到180度范围内的正角度很感兴趣。但是,根据输入线段中顶点的顺序,我会得到各种角度。我使用的输入数据以坐标元组的形式提供。根据顶点创建顺序,每条线段的最后一个/终点可能不同。以下是Python代码中的一些案例。我得到它们的线段顺序是随机的,但在元组的元组中,第一个元素是起点,第二个元素是终点。DE线段,例如,将有((1,1.5),(2,2))和(1,1.5)是起点,因为它在坐标元组中具有第一个位置。但是,我需要确保

python - Python中的线段树实现

我正在解决this使用问题segmenttree但我收到时间限制错误。下面是我的范围最小查询的原始代码,通过在我的代码中将min更改为max可以解决上述问题。我不知道如何提高代码的性能。你能帮我解决它的性能问题吗?t=[None]*2*7#nislengthoflistdefbuild(a,v,start,end):'''ArecursivefunctionthatconstructsSegmentTreeforlista.visthestartingnodestartandendaretheindexofarray'''n=len(a)ifstart==end:t[v]=a[star

python - 连接线段中最近的点并标记线段

我使用OpenCV和skimage对数据表进行文档分析。我试图分别分割出阴影区域。我目前能够将零件和编号划分为不同的集群。使用felzenszwalb()从skimage我分割部分:importmatplotlib.pyplotaspltimportnumpyasnpfromskimage.segmentationimportfelzenszwalbfromskimage.ioimportimreadimg=imread('test.jpg')segments_fz=felzenszwalb(img,scale=100,sigma=0.2,min_size=50)print("Felz

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

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

python - 计算两条一维线段的重叠距离

尝试构建一个函数,该函数将返回2条线段之间的总重叠距离,用开始和结束整数表示。目前我有这个:我在某个地方离开了互联网,defoverlap(min1,max1,min2,max2):"""returnstheoverlapbetweentwolinesthatare1D"""result=Noneifmin1>=max2ormin2>=max1:result=0elifmin1然而,对于0100,0,20的情况,它会返回100。这显然是错误的。有没有一种简单的计算方法可以返回正确的值? 最佳答案 defoverlap(min1,ma

Python实现的直线段生成算法和圆弧生成算法

资源下载地址:https://download.csdn.net/download/sheziqiong/86768948资源下载地址:https://download.csdn.net/download/sheziqiong/86768948基本图形生成算法直线段基础算法计算斜率和截距,通过y=kx+b的直线表达式计算每一个x对应的y值'''基础算法'''defdrawLine_Basic(grid,start,end):k=(end.y-start.y)/(end.x-start.x)b=start.y-k*start.xforxiinrange(start.x,end.x):#栅格的性质

华为OD机试题,用 Java 解【最少数量线段覆盖 or 区间交叠问题】问题 | 含解题说明

华为Od必看系列华为OD机试全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理已参加机试人员的实战技巧华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典本篇题目:最少数量线段覆盖or区间交叠问题题目给定坐标轴上的一组线段,线段的起点和终点均为整数并且长度不小于1,请你从中找到最少数量的线段,这些线段可以覆盖住所有线段。输入第一行输入为所有线段的数量,不超过10000,后面每行表示一条线段,格式为x,y,x和y分别表示起点和终点,取值范围是[−105,105]。输出最少线段数量,为正整