QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按照逆时针顺序,如何输出CAD图中线段的坐标(如果是多段线,则依次按照逆时针输出各点的x和y坐标。)
9 u& M0 [7 W: i7 x9 y# J) u请问,该如何实现?关键是逆时针是如何设置的?谢谢!盼复!
发表于 2009-10-16 10:56:58 | 显示全部楼层 来自: 中国台湾
这是一个数学问题,先不管如何取得一系列的点序列,假设你已经有依序排好的点串列,只剩如何判断这串列的顺序是逆时钟还是顺时钟。0 ^. y5 |5 M  w& M1 l. S2 M1 G6 N
基本原理是,从这些点串列所围成的封闭区域中找任意点,或是边上的一点(点a),再由边上的其它连续两点(点b丶点c)对这个点所形成的角度,依序取其角度之正弦值(sin(点b-点a-点c)),相加後大於零则表示此序列为逆时钟方向,反之小於零,则为顺时钟方向。
! t7 z: |) t7 U+ H6 e# A底下为示范例子:, R4 c% \+ Q) T0 _" Y0 L; T
ttt为子程序名,p123n(举例:((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))为点串列,# ^: s: z, K# t& }; W, I2 M; }
则执行 (ttt '((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))) 後得到 1.98... > 0& I* X6 n, c7 u2 t2 z
表示此序列为逆时钟方向。$ d' B. Z8 J5 V/ _
; v/ F+ Q! |" w( d
原程序:
5 J8 O, _# g! n, Z$ H(defun ttt (p123n / pt p23n1 r s)
" g8 r3 d+ x' _/ i2 s. w# Q  V  (setq pt (mapcar '(lambda(a b) (/ (+ a b) 2.0)) (car p123n) (cadr p123n))
4 ^8 q: U* V  u( }" E0 `! T2 W& V p23n1 (append (cdr p123n) (list (car p123n)))
. D( k; P0 I- x  \* c2 R: A r     0.00 d4 k2 h1 [, M8 H$ Z
  )) k% k! Q9 M# j( _* U; Z
  (mapcar '(lambda (a b / s)
# f# v( @2 t. d( t  n* k& ~1 n# I7 V      (setq s (sin (- (angle pt a) (angle pt b)))
# z! a/ }/ w# c9 G/ o5 Z9 ]     r (+ r s)
2 j3 t* a; J) b1 b9 {3 _      )0 v) E& O1 p4 `% p
    )
, w  b+ g, M& t( ]! V& T   p123n
( W- l  S! C4 y   p23n1
8 N: l  V) o% I6 x) J8 b5 X- G  )
6 z3 c4 A. B* V" X+ u  r) h+ m* b5 o, V2 P% m4 y5 u* k
)
4 X3 D. P. X5 n* C. W( Q; L! V$ }4 H( n) Q, e, Z
附加叙述,上述原理所提的任意点(点a),最好是确定在区域中的一点,边上点的选择不是最理想的,若是顶角点,那更糟糕,有时会得出等於零的结果,一样无法辨别方向。

评分

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

查看全部评分

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

0 E6 L/ ^5 _% K4 L- dhttp://www.4d-technologies.com/techcenter/index.htm
6 Q# h; F& X+ y6 |==>
5 r7 p. _# b- c/ kGE_WhatPoly [ Find the direction of the polygon (if Cw or CCw) ] ; }6 F5 P% }/ f6 i* \
(http://www.4d-technologies.com/techcenter/geom/ge_whatpoly.lsp)5 _  n3 O" W/ `' d, q
if CW ==> http://discussion.autodesk.com/forums/thread.jspa?threadID=292585
& p" m6 W; ]( h( q4 ]$ h/ E
( F5 G. Q* `/ r, P1 p[ 本帖最后由 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 )

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