Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 有效地测试光线和三角形交点--内存数据结构_Performance_Math_Data Structures_2d_Processing Efficiency - Fatal编程技术网

Performance 有效地测试光线和三角形交点--内存数据结构

Performance 有效地测试光线和三角形交点--内存数据结构,performance,math,data-structures,2d,processing-efficiency,Performance,Math,Data Structures,2d,Processing Efficiency,我在二维整数空间中收集了大量线段和直线。给定这个集合,我希望将其存储在内存中,以使以下方法/查询的延迟最小。我正在寻找一种与语言无关的数据结构,它最有效地满足以下条件,以及为什么它是一个好的选择 定义: 点-点由X,Y对表示。这些是INT64 线段-一对点。其中一点是起点,另一点是终点 三角形-由三个点组成的集合,也可以由三条线段定义,这三条线段形成最简单的几何形状 操作 IsPointInTrianglePoint-如果给定点位于任何存储的三角形内,则返回True/False IsPointO

我在二维整数空间中收集了大量线段和直线。给定这个集合,我希望将其存储在内存中,以使以下方法/查询的延迟最小。我正在寻找一种与语言无关的数据结构,它最有效地满足以下条件,以及为什么它是一个好的选择

定义:

点-点由X,Y对表示。这些是INT64 线段-一对点。其中一点是起点,另一点是终点 三角形-由三个点组成的集合,也可以由三条线段定义,这三条线段形成最简单的几何形状 操作

IsPointInTrianglePoint-如果给定点位于任何存储的三角形内,则返回True/False IsPointOnLine SegmentPoint-返回真/假是指给定点位于线段上 DoesLine SegmentCrossOtherLine SegmentsLine Segments-如果给定线段将与任何其他线段交叉,则返回True/False GetPotentialTrianglesLine Segment-如果此线段已添加到要创建的集合中,则返回一组潜在三角形。即返回由3个点/线段组成的直线段,这些点/线段构成零+三角形。 目标和假设:

操作和数据驻留在内存中。存储成本不是问题 操作不需要是线程安全的。每个操作将按顺序进行 不会存储位于现有三角形中的任何点 不会存储位于现有线段上的点 不会存储与现有线段交叉的线段 减少每次计算的延迟是最终目标。所有其他问题都是次要的。
@是的。我来编辑。