Objective c 在斜坡上绘制三角形

Objective c 在斜坡上绘制三角形,objective-c,math,geometry,Objective C,Math,Geometry,我正在写一个objective-c方法,它在斜坡上绘制一系列三角形。为了完成这项工作,我需要计算每个三角形C,D的顶点。位置起点和终点是可变的 这似乎应该是一道简单的数学题。但到目前为止,我还没能在纸上写出来。谁能给我指出正确的方向吗 在原点水平设置三角形: (0, 0), (p, 0), (p/2, a) 旋转以获得所需的坡度alpha: 通过将x1,y1添加到所有坐标进行移位 第三个坐标是顶点: (Cx, Cy) = (p/2 * cos(alpha) - a * sin(alpha) +

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

这似乎应该是一道简单的数学题。但到目前为止,我还没能在纸上写出来。谁能给我指出正确的方向吗

在原点水平设置三角形:

(0, 0), (p, 0), (p/2, a)
旋转以获得所需的坡度alpha:

通过将x1,y1添加到所有坐标进行移位

第三个坐标是顶点:

(Cx, Cy) = (p/2 * cos(alpha) - a * sin(alpha) + x1, p/2 * sin(alpha) + a*sin(alpha) + y1)
要查找其他顶点,请使用以下事实,即它们在角度alpha下彼此移动p:


不涉及三角学

设D=SqrtX12^2+Y12^2 P1和P2之间的欧氏距离X12=X2-X1和Y12=Y2-Y1,设p=p/D,a=a/D

如果P1P2是线段0,0-1,0,顶点将位于0,0,a,p/2,0,p,a,3p/2,0,2p

下面的变换缩放并旋转0,0-1,0到P1P2:

(Cx, Cy) = (p/2 * cos(alpha) - a * sin(alpha) + x1, p/2 * sin(alpha) + a*sin(alpha) + y1)
(Cx_i, Cy_i) = (Cx, Cy) + i*(p * cos(alpha), p * sin(alpha))
X = X1 + X12.x - Y12.y
Y = Y1 + Y12.x + X12.y