polar函数已知方位角可求出下一点坐标,那么反过来能求方位角吗?
polar 通过已知点p1 方位角ang,和距离dist,就能够求出下一点坐标p2,那么,如果已知p1. ang. dist. p2的话 能不能求出ang?(angle pt1 pt2)
当然能,因为你说的:“已知p1 ang dist p2……"
开个玩笑了。如果已知p1 p2 可以用(angle p1 p2) 太可以了。已知两点求方位角源码送上。
(defun c:FANGW ()
(princ "\n1.保留三位后计算 2.原始计算")
(princ "\n请选择计算类型<")
(princ "1")
(setq typ0(getint">:"))
(if (= nil typ0)(setq typ0 1))
(if(= 1 typ0)
(progn
(setq poit1 (getpoint "\n请输入起始点:")
poit2 (getpoint "\n请输入方向点:")
)
(setq x1 (atof(rtos (cadr poit1) 2 3))
y1 (atof(rtos (car poit1) 2 3))
x2 (atof(rtos (cadr poit2) 2 3))
y2 (atof(rtos (car poit2) 2 3))
)
)
)
(if(= 2 typ0)
(progn
(setq poit1 (getpoint "\n请输入起始点:")
poit2 (getpoint "\n请输入方向点:")
)
(setq x1 (cadr poit1)
y1 (car poit1)
x2 (cadr poit2)
y2 (car poit2)
)
)
)
(setq ha2 "")
(setq dx (- x2 x1))
(setq dy (- y2 y1))
(if (= dy 0)
(progn
(if (> dx 0)
(setq ang (angtos 0 1 5))
(setq ang (angtos PI 1 5))
)
)
)
(if (= dx 0)
(progn
(if (> dy 0)
(setq ang (angtos(/ PI 2)1 5))
(setq ang (angtos(* PI 1.5)1 5))
)
)
(progn
(setq d (/ dy dx))
(setq alf (atan d))
(if (> d 0)
(progn
(if (> dx 0)
(setq ang (angtos alf 1 5))
(setq ang (angtos(+ alf PI)1 5))
)
)
(progn
(if (> dx 0)
(setq ang (angtos(+ alf (* PI 2))1 5))
(setq ang (angtos(+ alf PI)1 5))
)
)
)
)
)
(princ "\n 方位角为:" )(princ ang)(princ)
)
Andyhon 发表于 2011-12-16 17:00 static/image/common/back.gif
(angle pt1 pt2)
谢谢, vormittag 发表于 2011-12-16 17:04 static/image/common/back.gif
当然能,因为你说的:“已知p1 ang dist p2……"
开个玩笑了。如果已知p1 p2 可以用(angle p1 p2)
太上火了,又思考了会儿,我把方位角的概念弄错了,怪不得老转不过来,看来有必要恶补下数学了 nxchenjk 发表于 2011-12-16 20:47 static/image/common/back.gif
太可以了。已知两点求方位角源码送上。
(defun c:FANGW ()
(princ "\n1.保留三位后计算 2.原始计算")
很厉害 ,这是把angle给重新定义了一次吧
页:
[1]