Board logo

标题: 两圆外公切线(完美版)工具+内外公切线工具(计算法完美版) [打印本页]

作者: yimin0519    时间: 2011-5-19 23:44     标题: 两圆外公切线(完美版)工具+内外公切线工具(计算法完美版)

看了网络上好多的两圆外公切线工具,大多都有这样或那样特定的使用条件限制,有的甚至违背尺规作图原则,不惜利用几何画板的三角函数计算功能造图。本人花了好几个小时制作与测试,终于用传统的尺规作图方法“造”了一个比较完美的《两圆外公切线工具》,诚与大家分享,欢迎测试与意见交流。

本工具的使用条件:两圆半径都不能为零即可!其它随意!!

鼠标操作:四下(圆1的圆心、圆周;圆2的圆心、圆周)

不喜欢长切线的朋友“术后”删除长切线后重画短切线段即可(但必须保留切点)。

附工具源文件:

两圆外公切线(完美版).gsp (6.83 KB)


完美版2(选两圆即可)(5楼所说问题尚待解决):


两圆外公切线(完美版2).gsp (9.69 KB)

2#工具制作原理一切都是为了找下图的切线段中点P:

工具原理.gif

计算法两圆公切线完美工具见15楼changxde先生的(含内外公切线):
http://www.inrm3d.cn/viewthread.php?tid=2728&page=2#pid26242

作为楼主,我有义务把它提到第一个页面:

两圆公切线工具(changxde).gsp (12.74 KB)

附件: 两圆外公切线(完美版).gsp (2011-5-19 23:44, 6.83 KB) / 下载次数 7646
http://www.inrm3d.cn/attachment.php?aid=12184&k=138a04c2407f4a36c87cdf3107b9c362&t=1714772274&sid=70B9Lw

附件: 两圆外公切线(完美版2).gsp (2011-5-20 13:30, 9.69 KB) / 下载次数 7597
http://www.inrm3d.cn/attachment.php?aid=12192&k=e95ce1763cbb938c632574af97b669a3&t=1714772274&sid=70B9Lw

图片附件: 工具原理.gif (2011-5-20 14:06, 12.73 KB) / 下载次数 5755
http://www.inrm3d.cn/attachment.php?aid=12193&k=81540a37ba21a7c03f3d963511e5bcd6&t=1714772274&sid=70B9Lw



附件: 两圆公切线工具(changxde).gsp (2011-5-23 22:47, 12.74 KB) / 下载次数 7355
http://www.inrm3d.cn/attachment.php?aid=12243&k=9890622719e509c9c142b7022c86a4a4&t=1714772274&sid=70B9Lw
作者: xiaongxp    时间: 2011-5-20 00:16

有问题,两圆内切时作不出外公切线。
作者: yimin0519    时间: 2011-5-20 01:56

2# xiaongxp

应当有,且有两条重合在一起的切线。

ky.gif

直接用工具作有两条重合切线:

ys.gif

图片附件: ky.gif (2011-5-20 02:08, 38.63 KB) / 下载次数 5682
http://www.inrm3d.cn/attachment.php?aid=12186&k=19f69401f5a7f3e009899a93f085bd49&t=1714772274&sid=70B9Lw



图片附件: ys.gif (2011-5-20 02:16, 32.03 KB) / 下载次数 5737
http://www.inrm3d.cn/attachment.php?aid=12187&k=189c98222fac85926c87f1a65e767969&t=1714772274&sid=70B9Lw


作者: sketchpad    时间: 2011-5-20 07:10

3# yimin0519
谢谢楼主分享,不知能不能改进成点两下
作者: xiaongxp    时间: 2011-5-20 07:30

时隐时现
两圆外公切线(完美版).gsp (10.66 KB)

附件: 两圆外公切线(完美版).gsp (2011-5-20 07:30, 10.66 KB) / 下载次数 7552
http://www.inrm3d.cn/attachment.php?aid=12189&k=21d09badd21c7f8402b0d12083300ee0&t=1714772274&sid=70B9Lw
作者: yimin0519    时间: 2011-5-20 11:55

时隐时现
12189
xiaongxp 发表于 2011-5-20 07:30
可能是画板计算精度的问题吧,改成四条重合切线情形也不知会好些么(但又似乎没这个必要)。本工具初始制作我只到四个切点。有兴趣的朋友,干掉两长切线,重新改制一下工具看看。

有时间再改用其它更复杂的几何原理、定理制作本工具,希望能搞出绝对完美的工具。
作者: yimin0519    时间: 2011-5-20 12:08

3# yimin0519
谢谢楼主分享,不知能不能改进成点两下
sketchpad 发表于 2011-5-20 07:10
应当没问题。只是要多花点时间。
作者: zwh2010    时间: 2011-5-20 13:02

好啊,下载收藏。从圆上取点再造圆心就可改两下了,猜的。
作者: yimin0519    时间: 2011-5-20 13:29

3# yimin0519
谢谢楼主分享,不知能不能改进成点两下
sketchpad 发表于 2011-5-20 07:10
好啊,下载收藏。从圆上取点再造圆心就可改两下了,猜的。
zwh2010 发表于 2011-5-20 13:02
已经改好,只点两圆即可。工具见1楼第二个附件。

不过文件尺寸大了许多(可能和改用另一种方法造图有关,脚本已到了80步!第一种作法脚本只有47步。)
作者: xiaongxp    时间: 2011-5-21 17:05

6# yimin0519
这的确是画板计算精度的问题。
yimin老师的尺规法非常精彩,认真品读很长见识。但是作为工具重在“用”上,囿于尺规法必然步骤多、文件大。而用代数手段就简便多了。我用代数法作,内外公切线一把抓,41步搞定,文件6.7k不到。不知是否还可以更简简便。
      5月23日更新:

附件: 两圆公切线工具.gsp (2011-5-23 20:59, 7.02 KB) / 下载次数 5899
http://www.inrm3d.cn/attachment.php?aid=12201&k=19a93a6dda21d23bea561ad913e9ddce&t=1714772274&sid=70B9Lw
作者: 柳烟    时间: 2011-5-21 18:22

yimin0519老兄的工具独辟跷径,尺规法让人开眼界,操作方便,下载学习。工具的造法,向老师意见中肯。工具文件的体积以尽可能小为妙,不管用什么方式搞出来的工具都行,不管是尺规法还是其它方法,因为数学问题,尺规法不是万能的。我试了,当两个圆相切时,用鼠标在相切处一点,会出现交点,但这交点就会出现闪烁现象,这时只好造假,作连心线与一个圆的交点,作切点,就不会闪烁了。握手yimin0519老兄。
作者: yimin0519    时间: 2011-5-21 23:53

10# xiaongxp

呵呵,各人自有偏好。计算法既然在几何画板里属底层配置,用用也无可厚非,不用确有舍本求木之嫌。

试了一下该工具,内公切线也上了,不错。我在造那工具时,作内公切线就遭遇失败,至今不知错误发生在哪个环节。

兄台的工具有个小问题:作完公切线,使两圆重合后,有点怪怪的,请看附件,另也存在两圆外切时“内”公切线“时隐时现”。
公切线工具(两圆重合时).gsp (10.8 KB)


另外提个建议,最终输出图元(如本工具的公切线)在制作工具时建议不要采用反射(镜像)手段,以方便给使用者视成图环境而取舍其所需图元(免得干掉一个,反射的那个也跟着没了)。

顺告:利用计算法造图,本工具制作建议舍弃计算误差较大的余弦函数而改为引入等幂轴(根轴)的计算更好。【等幂轴与以切线段长为直径的圆的交点即为切线段的中点,切线段的中点至连心线的中点矢量方向即为公切线的法向。】但此法可能难以对付两圆内切状况,因为此时的根轴就是外公切线。

附件: 公切线工具(两圆重合时).gsp (2011-5-21 23:52, 10.8 KB) / 下载次数 4386
http://www.inrm3d.cn/attachment.php?aid=12210&k=687fc00a7d2c12afc501b7acea9d30d5&t=1714772274&sid=70B9Lw
作者: yimin0519    时间: 2011-5-22 00:16

yimin0519老兄的工具独辟跷径,尺规法让人开眼界,操作方便,下载学习。工具的造法,向老师意见中肯。工具文件的体积以尽可能小为妙,不管用什么方式搞出来的工具都行,不管是尺规法还是其它方法,因为数学问题,尺规 ...
柳烟 发表于 2011-5-21 18:22
话很在理。当初的想法是公切线本来就是传统尺规作图范畴,不意跳出“三界外”,故不惜繁琐以待。

毕竟几何画板只是动态几何表达的一种基础工具,“智能”程度不是很高,有时用点傻办法、硬道理她可能还听话些,反正现今的电脑配置“背”得起她。我现在在想,如果几何画板具有if...then之智能,那该多好啊。5.04版?。。。6.0版?功能应该更完善吧,或许加个程序接口也行啊。
作者: 柳烟    时间: 2011-5-22 10:03

目前GSP这版本,老外有必要再将功能完善些,正如老兄说的,这款软件再不好好5升一下级,进行改造,将来说不定真有取代这软件的出来,那老外再不创新,怕这软件就只有死。
作者: changxde    时间: 2011-5-23 15:48

我也给一个两圆共切线工具,已近乎完美。请测试

附件: 两圆共切线工具.gsp (2011-5-23 22:27, 12.74 KB) / 下载次数 3401
http://www.inrm3d.cn/attachment.php?aid=12229&k=656384c5a2e4f30781afe43f930af6ea&t=1714772274&sid=70B9Lw
作者: zwh2010    时间: 2011-5-23 16:22

楼上做得很好啊,只有等圆外切的没了

图片附件: 新建 BMP 图像.GIF (2011-5-23 16:30, 3.9 KB) / 下载次数 2712
http://www.inrm3d.cn/attachment.php?aid=12233&k=a82b038e1605759746a28de6bbe7fe88&t=1714772274&sid=70B9Lw


作者: changxde    时间: 2011-5-23 17:18

16# zwh2010
已修正
作者: yimin0519    时间: 2011-5-23 19:16

15# changxde

试用了一下,计算法中是最完美的工具了,无两圆相切时生成的切线闪烁现象。

不过还是我在12楼那样建议,四条切线“分立”的好:
【最终输出图元(如本工具的公切线)在制作工具时建议不要采用反射(镜像)手段,以方便给使用者视成图环境而取舍其所需图元(免得干掉一个,反射的那个也跟着没了)。】
作者: zwh2010    时间: 2011-5-23 19:43

还有一点小问题,当等圆半径大约小于0.45cm时时隐时现,追踪扫描如图,苛刻啦。
1.GIF

图片附件: 1.GIF (2011-5-23 19:43, 3.42 KB) / 下载次数 2951
http://www.inrm3d.cn/attachment.php?aid=12238&k=0ea03a913f68a7f7b3e4a00d2afb7a3a&t=1714772274&sid=70B9Lw


作者: 柳烟    时间: 2011-5-23 20:20

19# zwh2010
这根线确实是问题的难点所在,要想克服,难上难呀。
作者: yimin0519    时间: 2011-5-23 21:02

还有一点小问题,当等圆半径大约小于0.45cm时时隐时现,追踪扫描如图,苛刻啦。12238
zwh2010 发表于 2011-5-23 19:43
把这种计算方式换成纯几何作图模式,不知情形会好些么,唉,要时间“玩制”工具啊。
作者: zwh2010    时间: 2011-5-23 21:12

估计难,而且我觉得即使是智能一点的软件也未必做得到,计算机数不是连续的。过分追求可能反而不好。做了个粗糙的两圆相切画板测试文件,追踪目标动画扫描可以发现问题。 两圆公切线工具测试.gsp (20.92 KB)

附件: 两圆公切线工具测试.gsp (2011-5-23 21:15, 20.92 KB) / 下载次数 3748
http://www.inrm3d.cn/attachment.php?aid=12241&k=27c7407da20769f1d3e1b223b74d2766&t=1714772274&sid=70B9Lw
作者: changxde    时间: 2011-5-23 21:18

18# yimin0519
还有一点小问题,当等圆半径大约小于0.45cm时时隐时现,追踪扫描如图,苛刻啦。12238
zwh2010 发表于 2011-5-23 19:43 ]
已更新,请继续测试
作者: zwh2010    时间: 2011-5-23 22:05

等圆外切时外公切线好像没了
2.GIF

图片附件: 2.GIF (2011-5-23 22:12, 5.54 KB) / 下载次数 2835
http://www.inrm3d.cn/attachment.php?aid=12242&k=08a5020a7227c4eba3730eeb81c84af9&t=1714772274&sid=70B9Lw


作者: yimin0519    时间: 2011-5-23 22:17

等圆外切时外公切线好像没了
zwh2010 发表于 2011-5-23 22:05
是的,两圆相等且外切时没用“外公”,只有“内公”。

还想提个建议,能不能不要显示出那个“爷”对象——连心线。实际操作过程中他太“碍”事了(工具中隐藏比使用工具时隐藏要好),不小心DEL掉,有时会崩盘的,难得去ctrl+Z了。
作者: changxde    时间: 2011-5-23 22:26

顾此失彼。
现在好了。
作者: zwh2010    时间: 2011-5-23 22:43

没发现问题,各种情况都不错,与直接做的没差别。
作者: 柳烟    时间: 2011-5-23 22:48

怎么那根外切时唯一的一根内公切线,我始终测试没见着呢
作者: yimin0519    时间: 2011-5-23 22:56

怎么那根外切时唯一的一根内公切线,我始终测试没见着呢
柳烟 发表于 2011-5-23 22:48
有两根重合在一起的切线呀。
作者: zwh2010    时间: 2011-5-23 22:58

有啊,什么情况发生的啊?我简单看了一下做法,应该可以面对各种问题的,changxde这工具搞得像推理一样厉害啊。
作者: yimin0519    时间: 2011-5-23 23:02

应当完美了,我把它附到1楼了。
作者: 柳烟    时间: 2011-5-24 00:11

究竟两圆推近到何种情况,才看得到两切线合一?我始终未见着。
作者: coolwantu    时间: 2022-4-24 22:59

想请教一下,制作工具时如何使得前提条件为两个圆周(工具选项里显示的是两条路径对象),但我在选择两圆创建工具时提示不是最初对象而无法创建工具。谢谢大佬。
作者: xiaongxp    时间: 2022-4-25 10:50

只要用了圆的父对象作图,就不能以圆为前提条件制作工具
作者: coolwantu    时间: 2022-4-25 16:57

34# xiaongxp

我试了一下 ,画了一个圆,隐藏圆心和定圆点,利用前面方法重造了一下圆心,然后选圆周和新的圆心就可以制作工具了。
是这个方法吧?
作者: xiaongxp    时间: 2022-4-25 21:10

是的,只是无需选圆心
作者: cx361    时间: 2022-10-31 15:35

好久没有来这里了,今天来看了一下这个话题,分享我的作法。这个方法,无论两个圆的半径谁大谁小,无论两圆是否相交,结果都一样。 00.JPG

图片附件: 00.JPG (2022-10-31 15:35, 92.5 KB) / 下载次数 3147
http://www.inrm3d.cn/attachment.php?aid=29292&k=854d4adb54ebd87a00d5a214f795aab1&t=1714772274&sid=70B9Lw






欢迎光临 inRm3D: 画板论坛 (http://www.inrm3d.cn/) Powered by Discuz! 7.0.0