三角形中的矩形 我试图在C++中构建一个程序来生成城市。 目前,城市由一组块(四块块或三角形块)表示

三角形中的矩形 我试图在C++中构建一个程序来生成城市。 目前,城市由一组块(四块块或三角形块)表示,c++,math,graphics,3d,C++,Math,Graphics,3d,我找不到有效的方法将三角形(TBlock)细分为矩形(QBlock)和三个三角形 想象一个三角形ABC。我们有两点T和T’,它们是线段BC的第一层和第二层。 现在我需要找到分别在AB和AC线段上的P和P′。 P是AB和BC通过T的法线的交点。 P'是AB与穿过T'的BC法线的交点 我知道如何找到T和T'以及向量BC的内向法线,但我找不到一种方法来计算通过T或T'的法线 谢谢 给定(BC)向量是(x,y),BC的法向量是(-y,x)。现在用T'的坐标偏移法向量,你将得到BC通过T'的法向量。直线

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

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

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


谢谢

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

直线的法向量
y=m*x+c
是直线
y=(-1/m)*x+d
,其中
c
d
是常数。
有两条线有一个公共点(T或T'),可以同时求解,以找到T和T的
m
d

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

Tan(O)=X/D

其中X是T和p之间的y_轴距离。只要解X,因为你知道O和D


一旦你知道了X,你就可以把X加到T的y值上,找到p。

把一张图片上传到其他地方,让别人把它加到你的问题上。谢谢OlayinkaSF。如果有人可以编辑我的帖子来添加以下图片,非常感谢:谢谢大家的回答。我还不能提高投票率,但我会尽我所能。。在测试了你的一些东西之后,我想更新我的问题。似乎我不能用我为每一种三角形设计的算法。有人知道如何找到三角形中最大的矩形吗?我必须更新我原来的问题还是最好发布一个新问题?@Silouangerin我建议你去,这是一个几何问题,你会得到更好的帮助谢谢OlayinkaSF。不幸的是,我问的问题不对。见我的评论。