- 该代码已经适用于 L=90°。
- 是的,高度必须是点到点和点之间
A的底的距离,与该底形成一个直角。推导做出了这个假设,特别是关于它使用的方式和第二个区域公式。如果以不同方式绘制,则该确切公式将不适用。aBCha1/2 h ah
- 您的第二组输入导致非真实答案的原因是,有时一组数学参数可能彼此不一致并描述了一个不可能的构造,而您的
P、h和L值正是这样做的。具体来说,他们描述了一个不可能的三角形。
给定一个高度h和角度L,可以达到的最小周长P是一个等腰三角形,从中间向下分割h。使用L=30,这将具有 perimeter P = a + b + c = 2h tan15 + h/cos15 + h/cos15,插入您的h=3,会导致P=7.819。您改为尝试使用P=3+sqrt(3)=4.732. 尝试使用小于 7.819 的各种数字(加上一点;我在这里四舍五入),你会看到它们都会产生虚构的结果。那是数学告诉您您正在计算现实中不存在的东西。
如果您在第 5 行的 theY和/in 之间填写缺少的右括号,那么您的代码可以完美运行。
我编写的代码与您略有不同,这就是我所做的:
Prompt P
Prompt H
Prompt L
HP²/(2H(1+cos(L))+2Psin(L))→Y
(HP-Ysin(L))/H→Z
Z²-4Y→D
If D<0:Then
Disp "IMAGINARY"
Stop
End
(Z+√(D))/2→C
Y/C→B
P-(B+C)→A
Disp A
Disp B
Disp C
编辑: @Gabriel,关于角度 30-60-90 没有什么特别的(关于这个问题);描述这些三角形的 、 和 输入P的h集合是无限的。L但是,如果您真的想在答案中得出这样的三角形,那么您实际上已经改变了问题;您现在知道三个角度 (30-60-90) 加上和,而不是只知道一个角度L加和。您现在已经过度指定了三角形,因此可以确定一组随机生成的输入将描述一个不可能的三角形。作为一个人为的示例,如果您指定为 0.0001 并且PhPhhP作为 99999,那么这显然是不可能的,因为一个高度很小且角度相当不极端的三角形(30-60-90 是)不可能达到其高度数倍的周长。
如果您只想从P或之一开始,那么您可以从已知的或加上 30-60-90 角的知识h推导出方程来计算三角形的所有参数。Ph
举一个例子,如果我们假设边a形成 90° 和 60° 角之间的三角形的底,那么我们有L=30和(将 60° 角标记为 B)我们有h=b,你可以得到简单的方程所有参数:
P = a + h + c
sin60 = h/c
cos60 = a/c
=> P = c cos60 + c sin60 + c
P = c(cos60 + sin60 + 1)
c = P/(cos60 + sin60 + 1)
b = h = c sin60
a = c cos60
插入P=100我们有
c = 100/(cos60 + sin60 + 1) = 42.265
b = h = 36.603
a = 21.132
如果您将P=100、h=36.603、 和L=30插入代码,您将看到您得到这些确切的结果。