使用等级库定义圆弧
大家好我需要一个命令,可以绘制具有给定长度,半径,中心角的圆弧,是否存在这个命令在autolisp或visual lisp?我在下图中表达了我的意思。
请帮帮我
命令行 有趣的数学问题。我不知道lisp,但如果我们设置这些斜线,使平分线垂直,那么这些光线应该旋转:
ACOS(d2/(2*rad1*SIN(ang4/2.0)))
是的,它很容易建造。但由于OP想要一个一键式的解决方案,我一直把头放在栏杆下。
有老战士。有勇敢的战士。没有胆大的老战士。 忽略的是,你有3个变量,但d和角度是独立的,只有一个可以使用,但op要求所有3个只有一个解决方案,如图所示,角度d变化 我不认为2.1(d2)是为了成为和弦。如果是和弦,则ang4和d2不能变化。
我认为d2是基于系统旋转角度的弦投影。因此,例如,如果d2需要为1.5,系统将需要进一步旋转。
顺便提一下,我的第一个方程确实存在使用ASIN而不是ACOS的错误。
在OP的另一个线程中(自删除后),中心角度似乎有所不同。半径和两条平行垂直线是恒定的。由于中心角可能在49.4584度和20.1573度(约)之间变化,我想知道是否会有进一步的信息。
但有了这条线索中的信息,只有一个解决方案。
由于无法访问约束,我想知道是否有一个简单的解决方案可以使用它们。
同意-这是我的推导:
不过,当然有4种可能的解决方案——圆的每个象限一个。 快速编写的LISP解决方案:
(defun c:myarc(/a b c d r x)(initget 1025)(setq c(getpoint“\n指定中心:”)(initget 1095)(setq r(getdist”\n指定半径:“c))(initget 1027)(setq b(getangle“\n指定夹角:”)(initget 1093)(setq d(getdist“\n指定水平距离:”)a(acos(/d 2 r(sin(/b 2)))x(/pi 2))(重复2)(重复2(entmake(list’(0。“ARC”)(cons 10 c)(cons 40 r)(cons 50(+x a(/b-2)))(cons 51(+x a(/b 2)))))(setq a(-a))(setq x(+pi x)))(princ));;反余弦-李;;参数:-1
页:
[1]
2