Graphics 在中心连接的矩形之间的间隙

Graphics 在中心连接的矩形之间的间隙,graphics,geometry,rendering,rectangles,line-segment,Graphics,Geometry,Rendering,Rectangles,Line Segment,我正在试验一种基于矢量的图形样式,将对象表示为一系列具有给定宽度的线段。将这些线段视为矩形可能更容易。问题是,这些线段在中心连接,并留下如下所示的间隙。我已经确定,覆盖这个间隙最有效的方法就是简单地用三角形覆盖它,因为我在OpenGL中工作,所以我所需要的是两个点的点,它们与另一个矩形不重叠,第三个点是两个线段矩形连接的中心点。如果我有两个矩形中的所有点,如何确定三角形需要使用哪些点 编辑:我也会接受其他解决方案,只要它们能弥补这个差距 编辑2:没关系,我解决了。一旦我有了更好的网络连接,我会发

我正在试验一种基于矢量的图形样式,将对象表示为一系列具有给定宽度的线段。将这些线段视为矩形可能更容易。问题是,这些线段在中心连接,并留下如下所示的间隙。我已经确定,覆盖这个间隙最有效的方法就是简单地用三角形覆盖它,因为我在OpenGL中工作,所以我所需要的是两个点的点,它们与另一个矩形不重叠,第三个点是两个线段矩形连接的中心点。如果我有两个矩形中的所有点,如何确定三角形需要使用哪些点

编辑:我也会接受其他解决方案,只要它们能弥补这个差距


编辑2:没关系,我解决了。一旦我有了更好的网络连接,我会发布代码。

也许我误解了这个问题。。。但是如果你放大你的红色五角大楼的上角,你会得到这样的东西,对吗

其中A和B是边1矩形上的节点,C和D是边2矩形上的节点。你说你已经知道这些坐标了。从你所说的,边在中心相交,在A和B之间,也在C和D之间。所以把这个点叫做X,我想你可以很容易地计算出它的坐标

所以你只需要画一个缺少的三角形AXC,对吗?一种方法是确定A和C在多边形的外侧,因此需要填充,B和D在内侧,因此不需要填充。但两个都画可能更容易,因为这样不痛。因此,如果您填充AXC和BXD,您将得到以下结果:


我找到的解决方案假设有3种基本情况:

首先,两个矩形的三个唯一中心点沿y轴正方向向上移动,因此间隙位于连接的左侧或右侧。在我的代码中,我将矩形的角点按其指向中心点左侧或右侧的方向组织,因此,如果底部矩形的左侧点低于顶部矩形的左侧点,则间隙位于两个矩形的左侧点之间,否则间隙位于右侧点之间

第二,三个唯一的中心点在大多数中心点的中心有一个最大值,因此间隙在顶部。然后,间隙位于具有最大y值的两点之间

第三,三个唯一的中心点在大多数中心点的中心有一个最小值,因此间隙在底部。然后,间隙位于具有最小y值的两点之间


[如果需要,我会发布示例案例的图片]

我想这就是你想要的:这基本上是同一个问题,我在发布之前没有看到,但是那里的答案对我来说有点过于理论化。我已经尝试过了,但是我在前面的代码中遇到了一个模糊的问题,所以我不能完全区分a和B或C和D,所以我希望找到一个更一般的解决方案。具体来说,a不一定与C成对,B不一定与D成对,但当我画出所有四个可能的三角形时,它看起来很奇怪。