小妹丁 发表于 2004-7-30 09:53:00

[求助]已知两点和半径作圆?

弧-(中心)-圆


有其它办法吗?

david96007 发表于 2004-7-30 10:25:00

有!


计算:


两点连线作为x轴,连线中点为坐标原点,两点间距一半为a(即两点x坐标值的绝对值),半径为r,勾股定理得另一边长b(即圆心坐标y值)!

citykunan 发表于 2004-7-30 10:50:00

meflying 发表于 2004-7-30 12:07:00

使用“弧-(中心)-圆”是最好的了,做成程序后使用相当简单,参考:(注:未考虑另一种情况)(defun c:test( / pt1 pt2 r ent ptCenter)
   (setq pt1 (getpoint "\n第一点:"))
   (setq pt2 (getpoint "\n第二点:"))
   (setq r (getreal "\n半径:"))
   (command "_.arc" pt1 "e" pt2 "r" r)
   (setq ptCenter (cdr (assoc 10 (entget (setq ent (entlast))))))
   (entdel ent)
   (command "_.circle" ptCenter (distance ptCenter pt1))
   (princ)
)

小妹丁 发表于 2004-7-30 16:07:00

(defun c:shg ()<BR>       (setq os (getvar "osmode"))<BR>       (setq cm (getvar "cmdecho"))<BR>       (setvar "cmdecho" 0)<BR>       (setvar "osmode" 0)<BR>       (shg1)<BR>       (setvar "cmdecho" cm)<BR>       (setvar "osmode" os)<BR>)<BR>(defun shg1 ()<BR>       (setq end (car (entsel "\n最大圆弧:")))<BR>       (setq enddata (entget end))<BR>       (command "lengthen" end "")<BR>       (setq hu (getvar "perimeter"))<BR>       (setq rd (cdr (assoc 40 enddata)))<BR>       (setq pdcen (cdr (assoc 10 enddata)))<BR>       (setq pdtemp (polar pdcen (* 0.5 pi) rd))<BR>       (setq enx (car (entsel "\n最小圆弧:")))<BR>       (setq enxdata (entget enx))<BR>       (setq rx (cdr (assoc 40 enxdata)))<BR>       (setq pxcen (cdr (assoc 10 enxdata)))<BR>       (setq pxtemp (polar pxcen (* 0.5 pi) rx))<BR>       (setq px1 (polar pxcen (cdr (assoc 50 enxdata)) rx))<BR>       (setq px2 (polar pxcen (cdr (assoc 51 enxdata)) rx))<BR>       (shg2)<BR>)<BR>(defun shg2 ()<BR>       (setq bb (getint "\n阵列数:"))<BR>       (setq rr (fix (/ (* (+ hu 3.5) bb) (+ pi pi))))<BR>       (setq pxx (polar pdtemp (* 1.5 pi) rr))<BR>       (setq dd (fix (distance pxx px1)))<BR>       (command "arc" px1 "e" px2 "r" dd "")<BR>       (setq hux (entlast))<BR>       (setq px (cdr (assoc 10 (entget hux))))<BR>       (command "circle" px dd "")<BR>       (command "erase" hux "")<BR>       <BR>)


TO:<A name=39032><FONT color=#000066><B>meflying</B></FONT></A>


其实还是这个问题,我想此时完成阵列,但不知如何获取截面图形,可以指点?

meflying 发表于 2004-7-30 16:25:00

能给个测试的图,并说说你要做什么吗?

小妹丁 发表于 2004-7-30 16:53:00

meflying发表于2004-7-30 16:25:00static/image/common/back.gif能给个测试的图,并说说你要做什么吗?


<BR><A href="dispbbs.asp?boardID=25&amp;ID=23834&amp;page=1" target="_blank" >dispbbs.asp?boardID=25&amp;ID=23834&amp;page=1</A>

meflying 发表于 2004-7-31 09:33:00

关于这个问题,精确的计算蛮复杂的,还没有找到好的办法


其他人的回答的那个方法作为近似计算,还是可以的,而且在一般情况下,结果也应该是正确的
页: [1]
查看完整版本: [求助]已知两点和半径作圆?