Math 找到​的面积;沿直线a、b、c变量的三角形

Math 找到​的面积;沿直线a、b、c变量的三角形,math,language-agnostic,Math,Language Agnostic,我有一条直线的输入系数ax+by+c。我找到了x和y坐标,找到了物体的面积​​一条直线穿过x轴和y轴形成的直角三角形。但是在测试中,如果a=1b=1c=-2 面积将为0.5,而不是2 如何修复它 a = int(input()) b = int(input()) c = int(input()) y = 0*a + b + c x = a + 0*b + c sAbc = 1/2 * a*b print(sAbc) 你使用了错误的公式 a=int(输入()) b=int(输入()) c=in

我有一条直线的输入系数ax+by+c。我找到了x和y坐标,找到了物体的面积​​一条直线穿过x轴和y轴形成的直角三角形。但是在测试中,如果a=1b=1c=-2 面积将为0.5,而不是2

如何修复它

a = int(input())
b = int(input())
c = int(input())

y = 0*a + b + c
x = a + 0*b + c
sAbc = 1/2 * a*b
print(sAbc)

你使用了错误的公式

a=int(输入())
b=int(输入())
c=int(输入())
面积=abs((c^2)/(a*b))/2
打印(面积)

这个问题应该在数学stackoverflow上问,因为数学有问题

首先,让我们计算y截距:

a*0 + b*y + c = 0
y = - c/b
a*x + b*0 + c = 0
x = - c/a
(稍后我们将讨论垂直线和水平线) 同样,我们计算x截距:

a*0 + b*y + c = 0
y = - c/b
a*x + b*0 + c = 0
x = - c/a
最后,该区域是

# A = abs(0.5 * x * y) = abs(0.5 * (-c/a) * (-c/b)) = abs(0.5 * c * c / a / b)
A = abs(0.5 * c * c / a / b)
但是,我们需要分别处理垂直线和水平线

if a == 0 or b == 0:
   print(0)
else:
   print(abs(0.5 * c * c / a / b))

当进入测试2-12时,面积是0,而不是1.0它怎么会是0?当计算面积时,上面公式中的a=2 b=-1 c=2
area
仅当
c^2
为零时才是零<当且仅当
c=0时,code>c^2
为零。如果
a,b,c
中至少有一个为0,则该区域可能为0