绘制三角形的高度

时间:2015-10-03 15:16:29

标签: javascript math geometry 2d computational-geometry

我想绘制一条表示三角形高度的线条。我知道圆圈的所有3个点(a,b,c)。我想通过一个。来绘制高度。

我有以下函数来计算bc的垂直渐变

gradient = function(a, b) {  
  return b.y - a.y / b.x - a.x;
};

perpendicularGradient = function (a, b) {
  return -1 / gradient(a, b);
};

我现在可以使用y = mx + c得到线的等式,得到一条垂直斜率为bc的线,我可以得出y截距。

function perpendicularLine(vertex, a, b) {
  // b = y - m * x
  var slope = perpendicularGradient(a, b),
      yIntercept = (- slope * vertex.x) + vertex.y;

  //how do I find the coordinates of the point on bc to draw a line from vertex
} 

我不知道接下来要做什么,即如何找到bc上点的坐标来加入a。

从谷歌搜索,我知道我可以使用向量,但我还没有涵盖我的数学课程,我宁愿使用一个线的等式。

2 个答案:

答案 0 :(得分:1)

右边,在你有了yIntercept和垂直线的斜率之后,你需要构建一个由2个线方程组成的2个线性方程组,其中包含2个未知数(x0,y0)(bc线和线穿过a) 。该系统的解决方案是沿着bc线的交叉点。

答案 1 :(得分:0)

从矢量方程p给出bc一点p = b + t bc,其中t是参数。你通过

来表达高度和基数的正交性
ap.bc = 0, or (ab + t bc) bc = 0.

这给出了

t = -ab.bc/bc²

允许您计算p