如何求一个圆上面固定长度的两个点的位置
本帖最后由 世人皆醉 于 2024-12-16 21:43 编辑[*](defun c:c3()
[*](setvar "cmdecho" 0) ;关闭普通命令提示信息
[*](setvar "osmode" 0);关闭对象捕捉状态
[*](command "._undo" "_begin")
[*](setq d1(getreal"请输入圆管的直径:"))
[*](setq PT0(GETPOINT "请输入圆管的长度:"))
[*]
[*](setvar "osmode" 16383);打开对象捕捉状态
[*](command "._undo" "_end")
[*](princ))
[*]
如上图所示,29和1.8都是常量,固定不变的,只有直径是变量,我想要画出上图所示,无论直径多少,都能求出29和1.8与直径的交点,每次都卡在画圆弧这个阶段,后面发现可能是位置坐标没找准,故前来请教!望大佬赐教。 本帖最后由 kozmosovia 于 2024-12-16 22:33 编辑
设半径为R,圆心为C,则
ang=(atan (/ 14.5 (sqrt (* R R)(* 14.5 14.5))))
p1=(polar C (- (* 0.5 pi) ang) R)
p2=(polar C (+ (* 0.5 pi) ang) R)
p1 p2就是上面两个开口的点
下面的点同样原理计算
除了直径看明白了,29和1.8都没看懂 1、先画圆,取了圆心坐标
2、用勾股定理计算出另一条边的长度: sqrt(- (* 225 225)(* 14.5 14.5))
3、以圆心为参考点,根据29/2和另一条边的长度,找到圆上指定点 ljpnb 发表于 2024-12-16 21:09
1、先画圆,取了圆心坐标
2、用勾股定理计算出另一条边的长度: sqrt(- (* 225 225)(* 14.5 14.5))
3、以 ...
第三个点能详细一点么,14.5和另外一条边的长度为啥能找到圆上指定点啊 llsheng_73 发表于 2024-12-16 21:06
除了直径看明白了,29和1.8都没看懂
可能我没描述的清楚,大概意思就是29和1.8是固定不变的,我就是要在圆上面开个29*1.8的豁口无论这个圆的直径是多少 本帖最后由 xyp1964 于 2024-12-17 20:14 编辑
;; 圆开豁口
;; 交互慢动作
ang=(atan (/ 14.5 (sqrt (* R R)(* 14.5 14.5))))
应该是
ang=(atan (/ 14.5 (sqrt (- (* R R)(* 14.5 14.5)))))
kozmosovia 发表于 2024-12-16 22:32
设半径为R,圆心为C,则
ang=(atan (/ 14.5 (sqrt (* R R)(* 14.5 14.5))))
p1=(polar C (- (* 0.5 pi) a ...
感觉有点问题啊,第一个是平方相加么,这个最后我测量的数据是14.3左右,不精准啊 xyp1964 发表于 2024-12-16 23:45
;; 圆开豁口
是这个意思,大佬能分享一下么?
页:
[1]
2