乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 21|回复: 1

[求助]小妹初学lisp,遇到一个问题大哥能告知吗?

[复制链接]

1

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2004-4-13 02:02:00 | 显示全部楼层 |阅读模式
已知三角形三边及一角点,画此三角形.
我写了一下,但始终报错..
(defun c:text1()
(setq J1 (getpoint "\n请输入三角形左下角点:"))
(setq A (getreal "\n请输入三角形底边长:"))
(setq B (getreal "\n请输入三角形左邻边长:"))
(setq C (getreal "\n请输入三角形右邻边长:"))
(setq S (/(+(+ A B)C)2))
(setq AREA (sqrt((*(*(* S (- S A))(- S B )(- S C))))))
(setq H (/(* 2 AREA)A))
(setq D (sqrt (-(* C C)(* H H))))
(setq Ang1 (atan(/ H D)))
(setq Ang1 (* Ang1 (/ 180 pi)))
(setq J2 (polar J1 0 A))
(setq J3 (polar J1 Ang1 C))
(command "pline" J1 J2 J3 "c")
(prin1)
)
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-13 08:01:00 | 显示全部楼层
根据你的已知条件应该是求不出三角形的,不过按你的程序意思倒是可以了,这个样子就很简单了,你为什么会做的那么复杂?数学不够扎实啊...
三角形的三边是有限制的,你最好在程序里做个判断:
(defun c:text1( / J1 A B C cosA sinA  s a)
                         (> s b)
                         (> s c)
                                         )
                         (progn
                                         (setq J3x (* B (/ (- (+ (* B B) (* A A)) (* C C)) (* 2.0 A B))))
                                         (setq J3y (sqrt (- (* B B) (* j3x j3x))))
                                         (setq j3 (list (+ (car j1) j3x) (+ (cadr j1) j3y)))
                                         (command "pline" J1 J2 J3 "c")
                         )
                         (princ "\n数据有误,程序退出!")
         )
         (princ)
)
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-15 23:39 , Processed in 3.016975 second(s), 56 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表