我尝试使用基于矢量的图形样式,其中的对象表示为具有给定宽度的一系列线段(可能更容易将这些视为矩形)。问题是这些段在中心连接并留下间隙(如下所示)。我已经确定,弥补这个差距的最有效方法就是用三角形来覆盖它,而且由于我在OpenGL中工作,我所需要的只是两点的要点。 t与另一个矩形重叠,第三个点是两个线段(矩形)连接的中心点。如果我拥有两个矩形的所有点,我如何确定需要用于三角形的点?
编辑:我也会接受替代解决方案,只要他们掩盖这一差距。
编辑2:没关系,我解决了。一旦我有更好的互联网连接,我就会发布代码。
答案 0 :(得分:0)
也许我误解了这个问题......但是如果你放大红色五角大楼的顶角,你会得到类似的东西,我是对的吗?
其中A和B是edge1的矩形上的节点,C和D是edge2的矩形上的节点。你说你已经知道这些坐标了。根据你的说法,边缘在中心处相遇,中间位于A和B之间,也在C和D之间。因此,将此点称为X,您可以轻松地计算其坐标。
所以你需要做的就是绘制缺失的三角形AXC,对吧?因此,一种方法是确定A和C位于多边形的“外部”(因此需要填充),B和D位于“内部”,因此不会。但它可能更容易画两个,因为它没有伤害。所以,如果你填写AXC和BXD,你会得到这个:
答案 1 :(得分:0)
我发现的解决方案假设有3个基本案例:
首先,两个矩形的三个唯一中心点向上(正y方向),因此间隙位于连接的左侧或右侧。在我的代码中,我将矩形的角点按其中心点左侧或右侧的方向组织,因此如果底部矩形的左侧点位于顶部矩形的左侧点之下,则间隙位于左侧点之间。两个矩形,否则间隙在正确的点之间。
其次,三个独特的中心点在大多数中心点的中心处具有最大值,因此间隙位于顶部。然后间隙在两个点之间,具有最大y值。
第三,三个独特的中心点在中心点的大部分中心处最小,因此间隙位于底部。然后间隙在两个点之间,具有最小的y值。
[如果要求,我会发布示例案例的图片]