编写LISP程序,输入三角形三个顶点,判断此三角形是否为等边三角形、直角三角形等
答案:2 悬赏:60 手机版
解决时间 2021-11-28 04:47
- 提问者网友:练爱
- 2021-11-27 23:07
编写LISP程序,输入三角形三个顶点,判断此三角形是否为等边三角形、直角三角形等
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-11-28 00:22
(DEFUN C:TE (/ P0 P1 P2 A0 A1 A2 L0 L1 L2 )
(command "undo" "Be")
(SETVAR "CMDECHO" 0)
(SETQ P0 (getpoint "第一点:"))
(setq P1 (getpoint "第二点:"))
(setq P2 (getpoint "第二点:"))
(SETQ A0 (ABS (- (ANGLE P0 P1) (ANGLE P0 P2))))
(SETQ A1 (ABS (- (ANGLE P1 P2) (ANGLE P1 P0))))
(SETQ A2 (ABS (- (ANGLE P2 P0) (ANGLE P2 P1))))
(SETQ L0 (DISTANCE P0 P1))
(SETQ L1 (DISTANCE P1 P2))
(SETQ L2 (DISTANCE P2 P0))
(COND
( (AND (EQUAL L0 L1 0.000001) (EQUAL L0 L2 0.000001))(alert "等边三角形"));;;;;;;;;;;;系统要加FUZZ
( (OR (= (/ PI 2) A1) (= (/ PI 2) A2) (= (/ PI 2) A0) ) (alert "直角三角形"))
(T (alert "其他类型三角形或三点在一条直线上"))
)
(command "undo" "e")
(PRIN1)
)
(PROMPT "***TE**************提供PO P1 P2*******判断三点所组三角形类别*******")
(command "undo" "Be")
(SETVAR "CMDECHO" 0)
(SETQ P0 (getpoint "第一点:"))
(setq P1 (getpoint "第二点:"))
(setq P2 (getpoint "第二点:"))
(SETQ A0 (ABS (- (ANGLE P0 P1) (ANGLE P0 P2))))
(SETQ A1 (ABS (- (ANGLE P1 P2) (ANGLE P1 P0))))
(SETQ A2 (ABS (- (ANGLE P2 P0) (ANGLE P2 P1))))
(SETQ L0 (DISTANCE P0 P1))
(SETQ L1 (DISTANCE P1 P2))
(SETQ L2 (DISTANCE P2 P0))
(COND
( (AND (EQUAL L0 L1 0.000001) (EQUAL L0 L2 0.000001))(alert "等边三角形"));;;;;;;;;;;;系统要加FUZZ
( (OR (= (/ PI 2) A1) (= (/ PI 2) A2) (= (/ PI 2) A0) ) (alert "直角三角形"))
(T (alert "其他类型三角形或三点在一条直线上"))
)
(command "undo" "e")
(PRIN1)
)
(PROMPT "***TE**************提供PO P1 P2*******判断三点所组三角形类别*******")
全部回答
- 1楼网友:未来江山和你
- 2021-11-28 00:35
distance 判断三边的长度就可以了,很简单的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯