QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3360|回复: 2
收起左侧

[已答复] 如何实现:逆时针输出CAD线段的坐标?

[复制链接]
发表于 2009-3-23 21:01:50 | 显示全部楼层 |阅读模式 来自: 中国山东济南

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
按照逆时针顺序,如何输出CAD图中线段的坐标(如果是多段线,则依次按照逆时针输出各点的x和y坐标。)9 B5 T6 t3 p; P' I% c2 r  d
请问,该如何实现?关键是逆时针是如何设置的?谢谢!盼复!
发表于 2009-10-16 10:56:58 | 显示全部楼层 来自: 中国台湾
这是一个数学问题,先不管如何取得一系列的点序列,假设你已经有依序排好的点串列,只剩如何判断这串列的顺序是逆时钟还是顺时钟。  V6 S! g! Y. ^' S$ R2 C
基本原理是,从这些点串列所围成的封闭区域中找任意点,或是边上的一点(点a),再由边上的其它连续两点(点b丶点c)对这个点所形成的角度,依序取其角度之正弦值(sin(点b-点a-点c)),相加後大於零则表示此序列为逆时钟方向,反之小於零,则为顺时钟方向。* o8 `* W  i% N; P& w- U5 m
底下为示范例子:! e5 o- m5 p" o3 y" _8 z0 _5 U
ttt为子程序名,p123n(举例:((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))为点串列,
: s! m7 c5 z8 Q" l' G, D则执行 (ttt '((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))) 後得到 1.98... > 03 V3 T/ o% |0 ?4 ?3 P9 v# g8 X
表示此序列为逆时钟方向。
7 h) D2 O' D8 S) J2 H3 s7 `6 O: |5 k: _9 U  v. {) n
原程序:) W  b! i$ E& N) @: m' n
(defun ttt (p123n / pt p23n1 r s)
2 J  k, n0 E% h4 K: r& R  (setq pt (mapcar '(lambda(a b) (/ (+ a b) 2.0)) (car p123n) (cadr p123n))
/ _8 T8 {- L9 j8 X1 u- q& m* I! ~ p23n1 (append (cdr p123n) (list (car p123n)))4 [9 F- r9 M8 \# o
r     0.0: Z, n7 Q: q1 b2 A2 }& s" b3 x; d
  ): x9 m5 w3 c- S- E/ N2 P
  (mapcar '(lambda (a b / s)1 d% ~* a' d, \1 v) N7 L
      (setq s (sin (- (angle pt a) (angle pt b))). v( i7 @2 q2 }
     r (+ r s)4 f3 u- G0 L( O: n8 `
      )) v" n: `* {- Q, z
    )
$ J# _3 m1 T; b, w% l   p123n; \) W/ a& C' r) @
   p23n1* n/ a( S5 L& t9 Y. o
  )' j7 X$ v- K& L- O/ k+ a. U$ ^' O* l
  r
" n: P) p' o  M! O# C)8 ?. b) ^5 W$ @" B- k

/ O5 V7 ~, Q, y+ D% G5 n4 Y附加叙述,上述原理所提的任意点(点a),最好是确定在区域中的一点,边上点的选择不是最理想的,若是顶角点,那更糟糕,有时会得出等於零的结果,一样无法辨别方向。

评分

参与人数 1三维币 +10 收起 理由
woaishuijia + 10 应助

查看全部评分

发表于 2009-10-16 21:47:48 | 显示全部楼层 来自: 中国台湾
...关键是逆时针是如何设置的...

- f7 p  x" }! o8 l. j. g/ a; U: O8 a" E! Q% T6 Z3 @
http://www.4d-technologies.com/techcenter/index.htm
* P5 J8 D) m% f2 B( _==>' q" E) F1 N  F, @  ~
GE_WhatPoly [ Find the direction of the polygon (if Cw or CCw) ]
2 K1 a* X, m0 ]' T. T) D(http://www.4d-technologies.com/techcenter/geom/ge_whatpoly.lsp)
" W& \6 s0 e1 t% l1 X7 n/ h+ H+ ~if CW ==> http://discussion.autodesk.com/forums/thread.jspa?threadID=292585% J0 l% o0 g6 X* a6 H  q+ ]5 p
+ g; `7 h0 v3 p1 }0 s* D
[ 本帖最后由 SunVei 于 2009-10-16 21:50 编辑 ]

评分

参与人数 1三维币 +5 收起 理由
woaishuijia + 5 应助

查看全部评分

发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表