在等腰三角形周围放置双边界的算法

时间:2016-04-11 17:02:45

标签: algorithm graphics

我一直试图找出在源代码中围绕等腰三角形绘制双边框的最佳方法。我想画出如下内容:

enter image description here

我尝试过两种方法都不起作用。

  1. 首先是天真的方法。放大边界框并重绘较大框内的三角形。问题是两个三角形之间的空间不均匀。一些代数说明了为什么会这样。见下图:
  2. enter image description here

    1. 相对于中心点缩放三角形。我这样做是通过将三角形的“中心”转换为原点,缩放并转换回来。我使用cx =(x1 + x2 + x3)/ 3和cy =(y1 + y2 + y3)/ 3(质心中心)计算中心,x和y是顶点的坐标。如果我这样做,我会得到以下图像,这显然也不对。
    2. enter image description here

      问题。我认为第二种方法应该有效,但我在缩放时使用正确的中心?

1 个答案:

答案 0 :(得分:4)

您应使用的缩放中心是Incenter,而不是Centroid。您可以使用以下公式找到激励:

((a*x1+b*x2+c*x3)/(a+b+c), (a*y1+b*y2+c*y3)/(a+b+c))

其中a是与点(x1, y1)相对的一侧的长度,b - 与(x2, y2)c相反 - {{1} }。

视觉证明: enter image description here

请注意,三角形是等腰是无关紧要的。