我有这个三角形:
我正在尝试在绿色圆圈中突出显示顶点值,以绘制该红色线。我可以使用任何公式来提取该值吗?
The centroid vertex G = (x=5.5, y=1.5)
The other vertex B = (x=0, y=1)
and the last vertex C = (x=7, y=0)
任何帮助将不胜感激。我知道这可能是五年级的数学,但我想不出一种计算这一点的方法。
如果丢弃三角形的大部分,仅保留向量B-> G和向量B-> C,则此问题表明自己是“向量投影”问题。这些是使用2个向量的点积来解析地求解的,并在其他地方进行了详细记录。
[花了我两天的时间来解决这个问题,基本上,您需要获取基本向量和海拔向量(质心)的斜率,然后求解此方程:两个向量(基本+海拔)的y = m * x + b
。然后,您将获得2个不同的方程式,您需要使用这些方程式先获取x,然后将该值应用于第二个方程式以获取y。有关更多信息,请观看以下YouTube教程:https://www.youtube.com/watch?v=VuEbWkF5lcM
如果有人感兴趣,这是PHP(伪)中的解决方案:
//slope of base
$m1 = getSlope(baseVector);
//slope of altitude (invert and divide it by 1)
$m2 = 1/-$m1;
//points
$x1 = $baseVector->x;
$y1 = $baseVector->y;
//Centroid vertex
$x2 = $center['x'];
$y2 = $center['y'];
//altitude equation: y = m * x + b
//eq1: y1 = (m1 * x1) + b1 then find b1
$b1 = -($m1 * $x1) + $y1;
//equation: y = ($m1 * x) + $b1
//eq2: y2 = (m2 * x2) + b2 then find b2
$b2 = -($m2 * $x2) + $y2;
//equation: y = ($m2 * x) + $b2;
//substitute eq1 into eq2 and find x
//merge the equations (move the Xs to the left side and numbers on the right side)
$Xs = $m1 - $m2; //left side (number of Xs)
$Bs = $b2 - $b1; //right side
$x = $Bs / $Xs; //get x number
$y = ($m2 * $x) + $b2; //get y number