明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3475|回复: 5

[请教]三点画圆的算法问题

[复制链接]
发表于 2008-7-10 23:47 | 显示全部楼层 |阅读模式

说明:前几日获得一个小程序,用于绘制任意三角形的外接圆,但是对其算法百思不得其解,

故而贴出来,恳请高手捉刀。

 

本帖子中包含更多资源

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

x
发表于 2008-7-11 17:48 | 显示全部楼层

没看明白,任意三角形的外接圆直接就能画出来的

 楼主| 发表于 2008-7-13 14:11 | 显示全部楼层
本帖最后由 作者 于 2008-7-15 20:36:14 编辑

我的意思关键是想问:圆心点的坐标通过怎样的算法才能由三点的坐标来表示?

1.如果直接用作图法很简单,现在的问题是要做成子函数的形式,方便调用(函数参数为三点的坐标)
2.上面的变换形式很方便简单,就是不知道如何得来的,请高手帮忙看看。
发表于 2008-7-14 09:16 | 显示全部楼层
本帖最后由 作者 于 2008-7-14 9:22:26 编辑

P1  (getpoint "\n请输入第一点:")
 2  (getpoint "\n请输入第二点:")
 3  (getpoint "\n请输入第三点:")

输入三个点;

P1X (car P1)
 1Y (cadr P1)
 2X (car P2)
 2Y (cadr P2)
 3X (car P3)
 3Y (cadr P3)
获得三个点的x,y坐标值;

D   (* 2.0
        (+ (* P1Y P3X)
    (* P2Y P1X)
    (- (* P2Y P3X))
    (- (* P1Y P2X))
    (- (* P3Y P1X))
    (* P3Y P2X)
        )
     )
算出固定的系数(请自学解析几何);

XC  (/ (+ (* P2Y P1X P1X)
    (- (* P3Y P1X P1X))
    (- (* P2Y P2Y P1Y))
    (* P3Y P3Y P1Y)
    (* P2X P2X P3Y)
    (* P1Y P1Y P2Y)
    (* P3X P3X P1Y)
    (- (* P3Y P3Y P2Y))
    (- (* P3X P3X P2Y))
    (- (* P2X P2X P1Y))
    (* P2Y P2Y P3Y)
    (- (* P1Y P1Y P3Y))
        )
        D
     )
算出圆心的x坐标值(也是解析几何的算法)

RAD (sqrt (+ (* (- P1X XC) (- P1X XC))
       (* (- P1Y YC) (- P1Y YC))
    )
     )
按圆心和第一点的坐标算出圆半径,这个简单。

 楼主| 发表于 2008-7-15 20:40 | 显示全部楼层

多谢chenjun_nj兄提示,以前的思路是怎么解三角形,没想到解析几何的方法,

应该可以用解两条中垂线交点的直线方程来解,先前的思路可能是短路了,呵呵

发表于 2008-8-19 09:04 | 显示全部楼层
也就是一个“二元一次方程”
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-29 10:52 , Processed in 0.165825 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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