我正在使用c ++实时裁剪一个对象。在这里我知道了A点和B点的2个坐标。我想找到与AB线垂直的第3点Z. Z(X3,Y3)。它意味着ABZ角是90.当我使用BZ斜率和BZ距离时,我获得了2个巨大的方程。我简化了它并获得了以下等式。
y3 ( y3 (k1 + y3) + k) = k ;
这里k1,k2,k3是已给出的Constance。但是k1 , k2 , k3
并不是彼此相等的。
我想在这里找到y3。请帮帮我。
答案 0 :(得分:1)
答案 1 :(得分:1)
这听起来过于复杂,至少如果我理解你的话 问题。如果Z上没有其他约束(除了它之外) 在B)垂直于AB的线,然后:
Z.x = B.x - (A.y - B.y);
Z.y = B.y + (A.x - B.x);
解决了这个问题。如果对Z有其他限制,则上述 表达式仍然给出一个点,用B定义该行。 根据约束条件,计算实际Z可能更多或 不那么复杂,但它仍然不应该涉及立方方程。
如果你确实需要采用立方根,当然,最简单的解决方案是使用标准函数cbrt
。
答案 2 :(得分:1)
一般来说,如果你想解决一个三次方程式
x ^ 3 + ax ^ 2 + bx + c = 0
你已经有两个解决方案x1,x2并正在寻找第三个解决方案x3 然后你可以通过观察
来做到这一点x ^ 3 + ax ^ 2 + bx + c =(x-x1)(x-x2)(x-x3),
因此
-a = x1 + x2 + x3
或
x3 = -a -x1 -x2
因此,在另外两种解决方案中找到立方体的第三种解决方案是微不足道的。