三角形中的矩形

时间:2013-06-02 14:17:02

标签: c++ math graphics 3d

我正在尝试用C ++构建一个程序生成城市的程序。 目前,城市由四个街区或三角街区块组成。

我找不到将三角形(TBlock)细分为矩形(QBlock)和三个三角形的有效方法。

enter image description here

所以想象一个三角形ABC。我们有两个点T和T',它们是BC线段的第一和第二层。 现在我需要找到分别在AB和AC线段上的P和P'。 P是AB与BC通过T的法线的交点。 P'是AB与通过T'的BC的法线的交点。

我知道如何找到T和T'以及向量BC的向内法线但是我找不到计算通过T或T'的法线的方法。

谢谢!

3 个答案:

答案 0 :(得分:1)

鉴于你的(BC)向量是(x,y),BC的法向量是(-y,x)。现在用T'的坐标来偏移法线向量,你将得到通过T'的BC的法线。

答案 1 :(得分:1)

y = m*x + c的法线是行y = (-1/m)*x + d,其中cd是常量。 你有两条带有公共点(T或T')的线,你可以同时解决T和T'的md

答案 2 :(得分:1)

您知道CBA形成的角度与TBP形成的角度相同。我们称之为O.你也知道B和T之间的距离。称之为D.使用这个我们可以使用三角法找到P.

Tan(O)= X / D

其中X是T和P之间的y_axis距离。因为你知道O和D,所以只求解X.

一旦你知道X,你就可以将X加到T的y值来找到P。