找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 967|回复: 9

[研讨] 三角形内三个最大的圆

[复制链接]

已领礼包: 1864个

财富等级: 堆金积玉

发表于 2017-4-21 19:50:01 | 显示全部楼层 |阅读模式

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

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

×
如何从一已知三角形内裁出三个同半径的圆且使得圆半径最大?有兴趣大家可以讨论其算法,如果有作图实现的方法那就更好了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6487个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 1864个

财富等级: 堆金积玉

 楼主| 发表于 2017-4-22 19:52:02 | 显示全部楼层
本帖最后由 aimisiyou 于 2017-4-30 20:01 编辑

\(先考虑直角三角形情况。\\显然,圆半径最大时,其中两圆与较长的直角边相切。(如右图)\\ 可得关系式:\)\\
\((b-(3+ctg\frac{A}{2})r)^2+(a-(1+ctg\frac{B}{2})r)^2=4r^2\),即\((b-(3+\frac{a}{c-b})r)^2+(a-(1+\frac{b}{c-a})r)^2=4r^2\)\(例如勾三股四弦五可得左图r=\frac{ab}{a+3b+c}=0.6,右图r=\frac{25}{41}>0.6\)
1.PNG
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1864个

财富等级: 堆金积玉

 楼主| 发表于 2017-4-22 21:52:06 | 显示全部楼层
本帖最后由 aimisiyou 于 2017-4-22 22:45 编辑

再考虑钝角三角形情况。分两种状况比较,取圆半径较大值。如图。
4.PNG
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1864个

财富等级: 堆金积玉

 楼主| 发表于 2017-4-22 22:01:59 | 显示全部楼层
最后是锐角三角形情况。有两种状况须比较,取其中圆半径较大值。如图。
2.PNG
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1864个

财富等级: 堆金积玉

 楼主| 发表于 2017-4-22 23:11:20 | 显示全部楼层
本帖最后由 aimisiyou 于 2017-4-23 10:07 编辑

下面分析下尺规作图问题。已知三角形ABC,角A对应边长为a,角B对应边长为b,角C对应边长为c,现指定一边不妨令为AB,能否用尺规作图作两同半径圆,满足两圆相切且均于AB相切,且分别与邻边相切?根据条件可得\(r=\frac {c}{\root  \of {\frac {(b+c)^2-a^2}{a^2-(b-c)^2}} + \root  \of {\frac {(a+c)^2-b^2}{b^2-(a-c)^2}}+2 }\),故可以尺规作图实现。
5.PNG
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1864个

财富等级: 堆金积玉

 楼主| 发表于 2017-4-30 20:18:19 | 显示全部楼层
本帖最后由 aimisiyou 于 2017-4-30 20:44 编辑

将角A、角B、角C按由小到大的顺序排列(如图),其中角B对应的边AC与两圆相切,   \(r=\frac {c}{4cosA+ctg\frac{A}{2}+ctg\frac{B}{2}}\)



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

使用道具 举报

已领礼包: 1864个

财富等级: 堆金积玉

 楼主| 发表于 2017-5-2 14:27:44 | 显示全部楼层
本帖最后由 aimisiyou 于 2017-5-2 20:02 编辑

(defun c:tt()
  (vl-load-com)
  (setq p1 (getpoint) p2 (getpoint) p3 (getpoint))
  (command "pline" p1 p2 p3 "c")
  (setq lst (vl-sort  
                    (mapcar '(lambda (x) (cons (apply 'distance (vl-remove x (list p1 p2 p3))) (list x))) (list p1 p2 p3))
                   '(lambda(a b) (<= (car a) (car b)))
             )
   )
   (setq a  (car (car lst))
         b  (car (cadr lst))
         c  (car (caddr lst))
         m  (+ a b c)
         n  (- (+ b c) a)
         r  (/  c
               (+ (/ (* 2 m n) (* b c))
                 -4
                 (sqrt (/ (* m n)(* (- (* 2 c) n) (- (* 2 b) n))))
                 (sqrt (/ (* m (- (* 2 c) n))     (* n (- (* 2 b) n))))
                )
            )
         d1 (/ r (sqrt (- 1 (/ (* m n) (* 4 b c)))))
         d2 (/ r (sqrt (- 1 (/ (* m (- (* 2 c) n)) (* 4 a c)))))
         pt (list (/ (+ (* a (car (cadr (car lst))))  (* b (car (cadr (cadr lst))))  (* c (car (cadr (caddr lst)))))   (+ a b c))
                  (/ (+ (* a (cadr (cadr (car lst)))) (* b (cadr (cadr (cadr lst)))) (* c (cadr (cadr (caddr lst)))))  (+ a b c))
             )
   )
  (command "circle" (cadr (car lst)) d1 "")
  (setq ent1 (entlast))
  (command "line" (cadr (car lst)) pt "")
  (setq ent2 (entlast))
  (command "circle" (cadr (cadr lst)) d2 "")
  (setq ent3 (entlast))
  (command "line" (cadr (cadr lst)) pt "")
  (setq ent4 (entlast))
  (setq center_1 (vlax-safearray->list
                              (vlax-variant-value
                                      (vla-intersectwith (vlax-ename->vla-object ent1)
                                                         (vlax-ename->vla-object ent2)
                                                          1
                                       )
                               )
                   )
   )
  (setq center_2 (vlax-safearray->list
                              (vlax-variant-value
                                      (vla-intersectwith (vlax-ename->vla-object ent3)
                                                         (vlax-ename->vla-object ent4)
                                                          1
                                       )
                               )
                   )
   )
   (command "circle" center_1 r "")
   (command "circle" center_2 r "")
   (command "circle" center_1 (* 2 r) "")
   (setq ent5 (entlast))
   (command "circle" center_2 (* 2 r) "")
   (setq ent6 (entlast))
   (setq center_3 (vlax-safearray->list
                              (vlax-variant-value
                                      (vla-intersectwith (vlax-ename->vla-object ent5)
                                                         (vlax-ename->vla-object ent6)
                                                          1
                                       )
                               )
                   )
   )
  (setq center_3_1 (list (nth 0 center_3)(nth 1 center_3)))
  (setq center_3_2 (list (nth 3 center_3)(nth 4 center_3)))
  (if (< (+ (distance center_3_1 (cadr (car lst))) (distance center_3_1 (cadr (caddr lst))) )   
         (+ (distance center_3_2 (cadr (car lst))) (distance center_3_2 (cadr (caddr lst))) )
       )
           (command "circle" (list (nth 0 center_3)(nth 1 center_3)) r "")
           (command "circle" (list (nth 3 center_3)(nth 4 center_3)) r "")
   )
  (vla-delete (vlax-ename->vla-object ent1))
  (vla-delete (vlax-ename->vla-object ent2))
  (vla-delete (vlax-ename->vla-object ent3))
  (vla-delete (vlax-ename->vla-object ent4))
  (vla-delete (vlax-ename->vla-object ent5))
  (vla-delete (vlax-ename->vla-object ent6))
)
m.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1864个

财富等级: 堆金积玉

 楼主| 发表于 2017-5-2 22:28:26 | 显示全部楼层
本帖最后由 aimisiyou 于 2017-5-2 22:30 编辑

查了下vla-intersectwith函数,其中最后一个参数ExtendOption有四个选项:acExtendNone、acExtendThisEntity、acExtendOtherEntity、acExtendBoth。但我用了数值1代替acExtendNone,运行也无误。不知这四个选项与数值有何关联?
66.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 02:22 , Processed in 0.422363 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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