放大/缩放/膨胀/放大三角形的算法

时间:2011-12-21 15:10:56

标签: geometry transform

我正在寻找一种算法,通过给定的比例因子使三角形变大。如果我将3个坐标乘以缩放系数,并且三角形不在原点上居中,则三角形也将平移以及不是所需效果的比例。

三角形需要在保持同一位置的同时增长。

我最初的想法是找到三角形中心,将三角形偏移到原点,缩放,再次偏移。然而,大概有一种比这更有效的方法呢?

另外,如果这是唯一的方法,找到三角形中心的最合适方法是什么?

3 个答案:

答案 0 :(得分:2)

三角形的中心应位于

  

(x1 + x2 + x3)/ 3,(y1 + y2 + y3)/ 3

答案 1 :(得分:1)

使用此算法生成新坐标将很有效

X_new = X_cg + (X_old-X_cg)*Scale
Y_new = Y_cg + (Y_old-Y_cg)*Scale

X_cg是几何体的几何中心

答案 2 :(得分:0)

获得中心点后,您可以执行以下操作:

  1. 在矢量中计算从三角形的一个点到中心的距离。 IE浏览器。 (3,4)。
  2. 将这些值加倍(或三倍,无论你想要什么)。 IE浏览器。 (6,8)
  3. 绘制与中心相比的新点。 IE浏览器。如果中心是(1,2),你会将新点加到那里并得到(7,10)
  4. 重复三角形的其他点
  5. 这应该有效:)

    为了计算中心,我会计算出从最高点到最低点的差异,将其减半,并将其加到最低点(因此你有两个中间),然后重复左右。那应该是你的中心。