找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1392|回复: 19

[求助] [求助]:已知三点求外接圆的圆心和半径

[复制链接]

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-4-15 23:05:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
有没有很简洁的写法.
帮我写一下吧.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-4-15 23:45:19 | 显示全部楼层

Re: [求助]:已知三点求外接圆的圆心和半径

最初由 aeo 发布
[B]有没有很简洁的写法.
帮我写一下吧. [/B]


任意两条线中垂线的交点不就是圆心吗? 圆心和任意一个点的距离就是半径了.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

 楼主| 发表于 2003-4-16 00:07:13 | 显示全部楼层
我用角度求,求死我了.
我刚也想到了.

有了圆心,起始角和终止角也有了.
当然,用entmake生成这arc,还要判断时针.

第二个问题,已知一长方体的和X轴角度和它的boundingbox,求这长方体的四个点.(唯一吗?)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-16 02:13:15 | 显示全部楼层
最初由 aeo 发布
[B]我用角度求,求死我了.
我刚也想到了.

有了圆心,起始角和终止角也有了.
当然,用entmake生成这arc,还要判断时针.

第二个问题,已知一长方体的和X轴角度和它的boundingbox,求这长方体的四个点.(唯一吗?) [/B]


你说是不是唯一?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-16 08:50:20 | 显示全部楼层
这种方法好
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-16 11:59:46 | 显示全部楼层
3點畫弧再求圓心,半徑
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-19 00:23:53 | 显示全部楼层
应该是唯一解。
CY画的那个是特例,外包是正方形,里面的矩形倾角为45度,这种情况是有无数解的。(如果倾角是45度,外包肯定是个正方形)

求法也很简单,一个一次方程而已。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-4-19 01:12:58 | 显示全部楼层

Re: Re: [求助]:已知三点求外接圆的圆心和半径

最初由 XDSoft 发布
[B]

任意两条线中垂线的交点不就是圆心吗? 圆心和任意一个点的距离就是半径了. [/B]

  1. (defun 3ptocircle (p1 p2 p3 / midp midp1 midp11 midp2 midp21 pcen)
  2.   ;;点是否在LINE上
  3.   (Defun ponln (p p1 p2 / l)
  4.     (foreach x (list p1 p2 p)
  5.       (setq l (cons (distance p x) l)
  6.             p x
  7.       )
  8.     )
  9.     (if        (equal (+ (car l) (caddr l)) (cadr l))
  10.       'T
  11.       nil
  12.     )
  13.   )
  14.   ;;求中点
  15.   (defun midp (p1 p2)
  16.     (mapcar '(lambda (x) (/ x 2)) (mapcar '+ p1 p2))
  17.   )
  18.   (if (not (ponln p1 p2 p3));不共线
  19.     (progn
  20.       (setq midp1  (midp p1 p2)
  21.             midp2  (midp p2 p3)
  22.             angle1 (angle p1 p2)
  23.             angle2 (angle p2 p3)
  24.             midp11 (polar midp1 (+ angle1 (/ pi 2)) 1.)
  25.             midp21 (polar midp2 (+ angle2 (/ pi 2)) 1.)
  26.             pcen   (inters midp1 midp11 midp2 midp21 nil)
  27.       )
  28.       (list pcen (distance pcen p1))
  29.     )
  30.   )
  31. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-19 09:30:01 | 显示全部楼层
我认为LUCAS 的方法最好,既简单,又实用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-4-19 12:08:33 | 显示全部楼层
最初由 lijiao 发布
[B]我认为LUCAS 的方法最好,既简单,又实用。 [/B]

画园也要判断是否共线,如果共线就不会生成园。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

 楼主| 发表于 2003-4-19 17:46:07 | 显示全部楼层
我要的是第二个问题!
能不能写个通用的.已知 box '(p1 p2 p3 p4 ) 和ang.

求圆心只要想起来就简单了,我开始用代数求.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-26 12:38:54 | 显示全部楼层
最初由 aeo 发布
[B]我要的是第二个问题!
能不能写个通用的.已知 box '(p1 p2 p3 p4 ) 和ang.

求圆心只要想起来就简单了,我开始用代数求. [/B]


我前面已经说过了。说详细一点吧,如图。解一个二元一次方程组即可。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-26 16:23:38 | 显示全部楼层

  1. ;;;判断是否共线
  2. ;;;Are Points CoLinear
  3. ;;;ARG -> 3 Points and Fuzz
  4. ;;;RET -> T nil
  5. ;;; BY David Bethel
  6. (defun IS_PT_COLINEAR (P1 P2 P3 FZ)
  7.   (or
  8.     (equal
  9.       (distance P1 P3)
  10.       (+
  11.         (distance P2 P1)
  12.         (distance P2 P3)
  13.       )
  14.       FZ
  15.     )
  16.     (equal
  17.       (distance P1 P2)
  18.       (+
  19.         (distance P3 P1)
  20.         (distance P3 P2)
  21.       )
  22.       FZ
  23.     )
  24.     (equal
  25.       (distance P2 P3)
  26.       (+
  27.         (distance P1 P2)
  28.         (distance P1 P3)
  29.       )
  30.       FZ
  31.     )
  32.   )
  33. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-26 19:00:47 | 显示全部楼层
最初由 eachy 发布
[B]
画园也要判断是否共线,如果共线就不会生成园。 [/B]

另外:
;;点是否在LINE上
  (Defun ponln (p p1 p2 / l)
    (foreach x (list p1 p2 p)
      (setq l (cons (distance p x) l)
            p x
      )
    )
    (if        (equal (+ (car l) (caddr l)) (cadr l))
      'T
      nil
    )
  )
这个判断方法似有问题.


  1.   [FONT=courier new]
  2. ;;已知3点求外接圆圆心半径.--------lxx2003.4
  3. (defun 3pcr ( p1 p2 p3 / oe ne ent ptcen rad)
  4. (setq oerr *error*
  5.        oe (entlast))
  6. (defun *error* (msg) (princ "\n3点无法画圆,请检查是否共线或有重复点")(setq *error* oerr)(princ))
  7. (command ".circle" "3p" p1 p2 p3)
  8. (if (entnext oe)
  9.    (progn
  10.       (setq entl (entget (entlast))
  11.             ptcen (cdr (assoc 10 entl))
  12.             rad (cdr (assoc 40 entl))
  13.       )
  14.      (princ "圆心=")(princ ptcen)
  15.      (princ "   半径=")(princ rad)
  16.      (entdel (entlast))
  17.   )
  18. )(princ)
  19. )
  20.   [/FONT]


再探讨一下判断共线的方法
1.共线则总有其中某两点距离等于 两两点位距离和的一半.


  1.   [FONT=courier new]
  2. ;;点是否在LINE上
  3.   (Defun ponln (p p1 p2 / l all key)
  4.       (setq l (list (distance p p1) (distance p1 p2) (distance p2 p))
  5.      all (+(car l) (cadr l)(caddr l)
  6.   )
  7.     (foreach x l
  8.       (if (equal x (/ all 2)) (setq key 'T))
  9.     )
  10. )
  11.   [/FONT]

2.共线某点与其它两点的角度之差为0,或者180度*n
3.共线则某两点距离等于其它两点两两间距离之和(参考上贴)

  1.   [FONT=courier new]
  2. (setq d1 (distance p p1)
  3.        d2 (distance p1 p2)
  4.        d3 (distance p2 p)
  5. )
  6. (if (or (= d1 (+ d2 d3)) (= d2 (+ d1 d3))(= d3 (+ d1 d2)))
  7.    (setq key 'T)
  8. )
  9.   [/FONT]

4.共线则用inters求交点为nil

  1.   [FONT=courier new]
  2. (if (and (not (equal p1 p2)) (not (equal p1 p3)));重点时inters不为nil
  3.   (if (inters p1 p3 p1 p2) (setq key 'T))
  4. )
  5.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

 楼主| 发表于 2003-4-27 10:44:01 | 显示全部楼层
最初由 梦断江南 发布
[B]
另外:
;;点是否在LINE上
  (Defun ponln (p p1 p2 / l)
    (foreach x (list p1 p2 p)
      (setq l (c... [/B]


还有种方法
p3到p1 p2连线距离为0.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-22 23:03 , Processed in 0.518831 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表