三角帮助
我正在尝试创建一个椽子。用户将输入度数(例如30度)和椽子厚度(例如90mm)
如何使用cos函数来实现这一点?我知道如果我使用cos 30,它会给我弧度,但我如何将其转换为铅垂线深度。
我知道铅垂线深度是103.92mm,但我需要使用什么公式来获得这个数字?
谢谢你的帮助,我已经努力解决这个问题好几个小时了。 你能把你想达到的目标的草图贴出来吗?我不确定你用的是什么专业术语。
我想我明白了:
(setq theThick 90.0
theAngle 30.0)
(/ theThick (cos (* (/ theAngle 180.0) pi))) 谢谢,看起来是一个很好的公式。我只有一个问题。当我使用代码时,我得到3个数字。
(setq Plumb (/ 90 (cos (* (/ Pitch 180.0) pi)))
当我为音高(30度)键入30时,当我键入!在命令提示下,我得到(-633.304-701.633 0.0)而不仅仅是一个数字。有什么想法吗? 你在函数定义中使用这个吗?你能把全部代码发出去吗? 以下是目前为止的代码:
(defun d2r (a)
(* pi (/ a 180))
)
(defun r2d (a)
(* 180.0 (/ a pi))
)
(defun c:truss ()
(getInput-RoofTruss)
(processInput-RoofTruss)
;(DrawObject-RoofTruss)
)
(defun getInput-RoofTruss ();/ IP SP TP SH MDF ND
(setq IP (getpoint "\nPick Insertion Point << "))
(setq SP (getpoint IP "\nPick or Enter Width << "))
(setq Pitch (getint"\nEnter Roof Pitch << "))
(setq OverHang (getreal"\nEnter OverHang << "))
)
(defun processInput-RoofTruss ()
(setq ANG (angle IP SP))
(setq ANG (r2d ANG))
(setq width (distance IP SP))
(setqPlumb (/ 90 (cos (* (/ Pitch 180.0) pi)))
(setqOverHang-P1(polar IP(d2r (+ (- ANG 180)Pitch)) OverHang))
(setq Plumb(polar OverHang-P1 (d2r (+ ANG90)) Plumb))
)
很高兴得知你自己把它整理好了。
一个好的编程实践是本地化变量,确保它们位于函数的命名空间中,并且不会干扰容器命名空间中具有相同名称的其他变量:
另一个好的做法是指符号命名:为了能够轻松阅读代码,函数通常大写,而变量名以小写字母开头:
4 也可能是90.0而不是90和180。有时它只是lisp real v的ints中的一个小错误。
页:
[1]