Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm 分裂选择算法_Algorithm_Opengl_Selection - Fatal编程技术网

Algorithm 分裂选择算法

Algorithm 分裂选择算法,algorithm,opengl,selection,Algorithm,Opengl,Selection,我遇到了一个在模型中以特定方式选择三角形的问题。 问题很简单: 用户有一个模型(由三角形制成),在该模型上定义一些边线(如果您愿意,可以剪切线),然后基于边线的垂直阵列,我想选择模型的一部分或同一模型的另一部分。 这是照片。 切割线在模型周围形成一个圆,我想选择一个模型,比如说在区域(1)中,基于切割线的垂直度。 我有关于场景中任何对象之间关系的信息(顶点与三角形、三角形与直线、顶点与直线等等) 另外,如果我们假设Y轴总是在一个方向上,比如说向下, 如果要为每个顶点只选择相邻的三角形,它们的顶

我遇到了一个在模型中以特定方式选择三角形的问题。 问题很简单: 用户有一个模型(由三角形制成),在该模型上定义一些边线(如果您愿意,可以剪切线),然后基于边线的垂直阵列,我想选择模型的一部分或同一模型的另一部分。 这是照片。

切割线在模型周围形成一个圆,我想选择一个模型,比如说在区域(1)中,基于切割线的垂直度。 我有关于场景中任何对象之间关系的信息(顶点与三角形、三角形与直线、顶点与直线等等)

另外,如果我们假设Y轴总是在一个方向上,比如说向下, 如果要为每个顶点只选择相邻的三角形,它们的顶点Y坐标主要,它将不起作用,因为,如果你看图像,(2)选择中的三角形,它是一个从切割线到顶点的邻接三角形,它的顶点Y坐标缝合条件,但这不是我想要选择的三角形


关于这个问题有什么想法吗?

我不确定我是否完全理解这个问题。如果是,那么我的答案是:


您希望将网格分离为两个不相交的面集,以便它们的边界是由一系列边定义的多边形线。当使用这样的措辞时,解决方案只是在面图中查找连接的组件,如果两个面共享的边不是切割线的一部分,则认为它们相邻。所以这就把你们的问题简化为经典的图论问题,叫做“连通分量”,可以在O(Nα(N))时间内完成。

好,但这里的想法是选择一个理想的曲面,它有一个类似于顶点数组的参数,而不是线。如果我们把行收集当作输入来讨论,我会同意你的观点。在这种情况下,我们有一条将一个曲面与另一个曲面分开的实线。但在垂直的情况下,我们只有一个相邻的三角形,每个顶点…你说你有一条“切割线”,所以你知道顶点和边,对吗?“万一发生眩晕,唯一的事……”对不起,我不明白。你能用集合论的术语重新表述你的问题吗?您拥有一个包含三角形、边和顶点的网格。所需算法的输入还有什么?顶点子集?所需算法的输入仅为“切割线”垂直的子集。我能做什么:从顶点我能检索到它的相邻三角形,所以直线也是。@Tigran:那你怎么知道这个子集实际上形成了一条直线?如果输入只是来自不同三角形的一对顶点,该函数必须从“切割线”接收垂直序列。这是一个来电者的责任,使一系列正确的垂直,我们不需要担心这一点。换句话说,数据的正确性不是我们所担心的,我们需要处理我们对待数据的方式。从这个问题的角度来看,黄色球体只是针点,它们是不相关的。