在斜坡上绘制三角形

时间:2014-01-29 04:05:41

标签: objective-c math geometry

我正在编写一个在斜坡上绘制一系列三角形的Objective-c方法。为了完成这个,我需要计算每个三角形的顶点(C,D)。位置起点和终点是可变的。

这似乎应该是一个简单的数学问题。但到目前为止,我还没有能够在纸上解决这个问题。有人能指出我正确的方向吗?

triangle problem

2 个答案:

答案 0 :(得分:2)

不涉及三角函数。

D= Sqrt(X12^2+Y12^2)P1P2X12 = X2-X1)之间的欧几里德距离Y12 = Y2-Y1,让p= P/D,{{1} }。

如果a= A/D是线段P1P2,则顶点将位于(0, 0)-(1, 0)(0, 0)(a, p/2)(0, p),{{ 1}} ...

下面的转换可以缩放并将(a, 3p/2)转换为(0, 2p)

(0, 0)-(1, 0)

答案 1 :(得分:1)

  1. 水平设置原点三角形:

    (0, 0), (p, 0), (p/2, a)
    
  2. 旋转以获得所需的斜率alpha

    (0, 0), (p*cos(alpha), p*sin(alpha)), (p/2 * cos(alpha) - a * sin(alpha), p/2 * sin(alpha) + a*sin(alpha))
    
  3. 通过向所有坐标添加(x1, y1)进行转换。

  4. 第三个坐标是你的顶点:

    (Cx, Cy) = (p/2 * cos(alpha) - a * sin(alpha) + x1, p/2 * sin(alpha) + a*sin(alpha) + y1)
    

    要查找其他顶点,请使用p在角度alpha下相互移动(Cx_i, Cy_i) = (Cx, Cy) + i*(p * cos(alpha), p * sin(alpha)) 的事实:

    {{1}}