多段线改R角是可以实现的.但是需要从R角转换成凸度.
关于凸度的转换可以贴一段代码. 仅供参考. - ;半径表转换为凸度表.
- ;|
- d/2 r
- (cx-tan(* 0.5(cx-Asin(/ 104.24 147.42))))
- |;
- (defun cx-Radius->Bul(Pts_lst Radius_lst / n)
- (setq Pts_lst(append Pts_lst (list(car Pts_lst))))
- (setq n -1)
- (mapcar
- '(lambda(x)
- (setq n(1+ n))
- (if(= x 0)
- 0
- (progn
- (setq D (* 0.5(distance (nth n Pts_lst)(nth (1+ n)Pts_lst))))
- (cond
- ;小于0且 半径大于距离
- ((and(< x 0)(<= D (abs x)))
- (* -1
- (cx-tan
- (* 0.5
- (cx-Asin
- (/
- D
- (abs x)
- )
- )
- )
- )
- )
- )
- ;大于0且 半径大于距离
- ((<= D x)
- (cx-tan
- (* 0.5
- (cx-Asin
- (/
- D
- x)
- )
- )
- )
- )
- (t
- (progn
- (prompt (strcat "\n错误:两点之间的距离D:<"(rtos D) ">大于直径<" (rtos x)">.请核查!\n\n"))
- 0
- )
- )
- )
- )
- )
- )
- Radius_lst
- )
- )
|