QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
查看: 3304|回复: 2
收起左侧

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

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

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

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

x
按照逆时针顺序,如何输出CAD图中线段的坐标(如果是多段线,则依次按照逆时针输出各点的x和y坐标。)
8 e8 {9 [$ `" w: B( T$ F7 R  w请问,该如何实现?关键是逆时针是如何设置的?谢谢!盼复!
发表于 2009-10-16 10:56:58 | 显示全部楼层 来自: 中国台湾
这是一个数学问题,先不管如何取得一系列的点序列,假设你已经有依序排好的点串列,只剩如何判断这串列的顺序是逆时钟还是顺时钟。
) _" T2 V# g" A  L基本原理是,从这些点串列所围成的封闭区域中找任意点,或是边上的一点(点a),再由边上的其它连续两点(点b丶点c)对这个点所形成的角度,依序取其角度之正弦值(sin(点b-点a-点c)),相加後大於零则表示此序列为逆时钟方向,反之小於零,则为顺时钟方向。. |  ?- @3 Z/ q! Q* O& ]% I' i: B
底下为示范例子:( }* G" N1 @9 T& B2 u) T
ttt为子程序名,p123n(举例:((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))为点串列,
0 f6 i. ^! i% ?则执行 (ttt '((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))) 後得到 1.98... > 0; `! e/ S! h  W7 w. h. C" v" ]
表示此序列为逆时钟方向。
) Q) Y* M6 }2 E4 j* y9 w/ u" x; ?) d5 u
原程序:5 g) r: H) B9 X  r& m# ^6 g+ ~
(defun ttt (p123n / pt p23n1 r s)
9 u, a1 e$ P' V  (setq pt (mapcar '(lambda(a b) (/ (+ a b) 2.0)) (car p123n) (cadr p123n))
: z4 x+ ]$ X8 C3 D: r% W7 Y p23n1 (append (cdr p123n) (list (car p123n))). l% e2 f2 {! ?. W# h2 W) C# D; {
r     0.0& E2 v, @. q4 U: A3 y& C7 V
  )& A( d: z  h0 c. P) `9 K7 M0 ~
  (mapcar '(lambda (a b / s)
- ]" Y' m$ ^9 z3 k      (setq s (sin (- (angle pt a) (angle pt b)))+ j6 I, a9 q- j  Q
     r (+ r s)
4 y' R" m& V: ~* q  P9 P* R      )
/ K$ M. q- x. _( r/ h    )( f8 i& ]) o: y0 ?
   p123n
1 }/ r+ K& Q" ?6 c1 k! ~% d5 L   p23n1, V8 s9 H4 W: c- {: ^' Q1 S' e
  )
: T0 o  ^8 b+ w6 Y- e0 E9 F  r
, h4 G3 ]; V( e2 l, Q% w)* r0 O5 G7 n4 B$ U
. G% a2 h, d2 z" v" c
附加叙述,上述原理所提的任意点(点a),最好是确定在区域中的一点,边上点的选择不是最理想的,若是顶角点,那更糟糕,有时会得出等於零的结果,一样无法辨别方向。

评分

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

查看全部评分

发表于 2009-10-16 21:47:48 | 显示全部楼层 来自: 中国台湾
...关键是逆时针是如何设置的...
6 _1 `. j4 W% }7 P0 d; h& Q, h
) h$ R( M1 D4 K4 A
http://www.4d-technologies.com/techcenter/index.htm6 W5 V5 [, s& m. `
==>/ a5 U* X( s( E9 w. [
GE_WhatPoly [ Find the direction of the polygon (if Cw or CCw) ]
* B# @1 z# [  D9 t(http://www.4d-technologies.com/techcenter/geom/ge_whatpoly.lsp)2 O0 J2 n; s1 x/ x  s, O
if CW ==> http://discussion.autodesk.com/forums/thread.jspa?threadID=2925853 h/ ]  Q, C( n  M' `

% S( \9 l  D5 u' l- ?/ X6 l[ 本帖最后由 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 )

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