QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按照逆时针顺序,如何输出CAD图中线段的坐标(如果是多段线,则依次按照逆时针输出各点的x和y坐标。)2 N9 G% t" z( Z* [6 h; {
请问,该如何实现?关键是逆时针是如何设置的?谢谢!盼复!
发表于 2009-10-16 10:56:58 | 显示全部楼层 来自: 中国台湾
这是一个数学问题,先不管如何取得一系列的点序列,假设你已经有依序排好的点串列,只剩如何判断这串列的顺序是逆时钟还是顺时钟。
: T* t) ?6 D2 _+ e! S+ V9 H基本原理是,从这些点串列所围成的封闭区域中找任意点,或是边上的一点(点a),再由边上的其它连续两点(点b丶点c)对这个点所形成的角度,依序取其角度之正弦值(sin(点b-点a-点c)),相加後大於零则表示此序列为逆时钟方向,反之小於零,则为顺时钟方向。. }/ ~1 I# |4 ^! V" ^0 l
底下为示范例子:
- f& l5 S, W% }( uttt为子程序名,p123n(举例:((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))为点串列,0 y: C1 _0 a+ q& Q" j" M0 L
则执行 (ttt '((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))) 後得到 1.98... > 0/ ?* V$ d; @8 A' r" i) }  G
表示此序列为逆时钟方向。4 B: X$ W% z, J/ w4 |
3 l% O) J0 G% ^) F6 ]
原程序:* P! S8 b( c6 u* ^' S
(defun ttt (p123n / pt p23n1 r s)4 }3 z; r' x. P8 j4 U* z7 m
  (setq pt (mapcar '(lambda(a b) (/ (+ a b) 2.0)) (car p123n) (cadr p123n))& d! B, A" P/ M% n) p8 n
p23n1 (append (cdr p123n) (list (car p123n)))! {1 \: Z# i% d4 ^* |: |7 u
r     0.01 Y' h9 ~5 R$ ~( s6 m
  )
$ s2 E7 t' L+ Q2 e5 R  (mapcar '(lambda (a b / s)% U1 _- P) O! e8 w7 ^4 H% n
      (setq s (sin (- (angle pt a) (angle pt b)))) }* ?, o, e  @& F: ~
     r (+ r s)
* b5 W7 E% h: s1 A/ u) n      )1 D+ \, v  D! u' u
    )
! ?: Q( D5 J: d' J1 f; G. f) g% d! s+ w0 @; ~   p123n: S4 s" x* c9 A  T. W  O
   p23n1
( q' Y; F* A/ R* e9 K  )$ @1 a1 o/ u8 j* K8 G
  r: s0 [9 m$ N7 ?9 y
)
! R! y* p8 O- j8 K- v3 q% j+ O
5 y+ a" W5 \8 S& Q% i$ n) s附加叙述,上述原理所提的任意点(点a),最好是确定在区域中的一点,边上点的选择不是最理想的,若是顶角点,那更糟糕,有时会得出等於零的结果,一样无法辨别方向。

评分

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

查看全部评分

发表于 2009-10-16 21:47:48 | 显示全部楼层 来自: 中国台湾
...关键是逆时针是如何设置的...
/ `6 a8 j# G/ D2 M; T' P7 O7 y0 @. _
' O  y+ w8 R% N/ O% n
http://www.4d-technologies.com/techcenter/index.htm
2 G! H- I0 Y( x  A==>
; z% B7 {+ k" s5 |0 nGE_WhatPoly [ Find the direction of the polygon (if Cw or CCw) ] 0 i5 a7 }& n5 U" Y2 j. D5 O) h( R; r4 g
(http://www.4d-technologies.com/techcenter/geom/ge_whatpoly.lsp)5 z4 ]6 S7 d1 q% G- f
if CW ==> http://discussion.autodesk.com/forums/thread.jspa?threadID=292585" z/ g' I$ q, A9 x% [
" u3 a& C4 q4 z3 ]. Y& c
[ 本帖最后由 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 )

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