好的,所以我试图在不计算垂直向量的情况下获得二维三角形中一个点的距离。
float qd = Vector2f.dot(new Vector2f(pos.x, pos.z),
new Vector2f(normal.pos.x, normal.pos.z)) -
Vector2f.dot(new Vector2f(q.center.x, q.center.z),
new Vector2f(normal.pos.x, normal.pos.z));
这就是我正在使用的代码。(注意:它将 3f 向量转换为 2d 向量,但您不必担心)。我需要计算的结果介于 0 和 1 IE 0.5 之间。
如果我仍然没有正确解释,也许这会有所帮助?
我的问题是:如何在不计算垂直向量距离的情况下获得二维三角形中点的距离?IE如果三角形朝上(y = -1)没有任何倾斜,我需要三角形中没有任何X的距离。
Edit1:关于你在说什么,Banthar,这就是我从中得到的,它不起作用,但它似乎接近工作。
float d = (float) Math.sqrt( 0 /*cause the two x's should be the same */ + Math.pow(pos.z - q.max.z, 2));
float h = (float) Math.sqrt( 0 /*cause the two x's should be the same */ + Math.pow(q.min.z - q.max.z, 2));
float myDist = d/h;