我想绘制一条表示三角形高度的线条。我知道圆圈的所有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。
从谷歌搜索,我知道我可以使用向量,但我还没有涵盖我的数学课程,我宁愿使用一个线的等式。
答案 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
。