QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按照逆时针顺序,如何输出CAD图中线段的坐标(如果是多段线,则依次按照逆时针输出各点的x和y坐标。)
7 ^1 k+ l9 |3 }8 ~请问,该如何实现?关键是逆时针是如何设置的?谢谢!盼复!
发表于 2009-10-16 10:56:58 | 显示全部楼层 来自: 中国台湾
这是一个数学问题,先不管如何取得一系列的点序列,假设你已经有依序排好的点串列,只剩如何判断这串列的顺序是逆时钟还是顺时钟。
" I2 I/ r& O" N4 w3 I7 A基本原理是,从这些点串列所围成的封闭区域中找任意点,或是边上的一点(点a),再由边上的其它连续两点(点b丶点c)对这个点所形成的角度,依序取其角度之正弦值(sin(点b-点a-点c)),相加後大於零则表示此序列为逆时钟方向,反之小於零,则为顺时钟方向。, Q# v! ]2 e  r3 q6 p( y5 m9 {$ F% O
底下为示范例子:" z4 |; U3 `* R  B
ttt为子程序名,p123n(举例:((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))为点串列,
6 M( t9 R9 D. m6 X' v  T& J则执行 (ttt '((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))) 後得到 1.98... > 02 {/ G7 g0 t7 Z1 P3 @. u2 q
表示此序列为逆时钟方向。+ s# D3 R& T6 I  x' e5 l
! K: I0 a' g. t6 s
原程序:: }: z, ^1 S" h  f* ~% n$ \1 o% w* |! ]( ~
(defun ttt (p123n / pt p23n1 r s)2 r* j( |$ X1 m& e2 l
  (setq pt (mapcar '(lambda(a b) (/ (+ a b) 2.0)) (car p123n) (cadr p123n))  {/ y; W& _1 }/ U
p23n1 (append (cdr p123n) (list (car p123n)))9 d4 e8 R6 Y# \0 o. ^! k% V
r     0.09 k/ ~+ a( E$ P+ J% x
  ), V( T+ x7 W. H4 C( g- Y) _
  (mapcar '(lambda (a b / s)
( i. |6 q% L4 w1 d- }      (setq s (sin (- (angle pt a) (angle pt b)))
& C6 g+ f8 P: F# x6 Z7 X- z' e$ }     r (+ r s)
2 U/ }2 \; g- o# |. v- X      )$ Q* f+ X8 b# q, U4 k! [1 l. c8 a# ]
    )
, O3 z% U+ }4 j* R* I0 Y& r   p123n' g2 n6 J0 X3 a* C
   p23n1
! Q. k0 ?* s3 o6 S4 g1 w6 H& k  )$ z/ Z! I/ N  }- F2 u) S$ k) P
  r# ]& Y  Q% q3 g& n- Y
)
$ I( A: w- e9 ~8 E1 e
) J6 v+ M: M: J( d, a; I* {2 S附加叙述,上述原理所提的任意点(点a),最好是确定在区域中的一点,边上点的选择不是最理想的,若是顶角点,那更糟糕,有时会得出等於零的结果,一样无法辨别方向。

评分

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

查看全部评分

发表于 2009-10-16 21:47:48 | 显示全部楼层 来自: 中国台湾
...关键是逆时针是如何设置的...
0 h- k$ P! P9 v1 U7 m

4 A# h4 [5 f; G$ Ihttp://www.4d-technologies.com/techcenter/index.htm2 C5 x: \; [1 C# A$ A0 I  I( Y
==>
7 a7 X# P$ Z; k% e, k$ b& }$ I7 r5 _: `GE_WhatPoly [ Find the direction of the polygon (if Cw or CCw) ]
; a; X7 P; A/ J/ n(http://www.4d-technologies.com/techcenter/geom/ge_whatpoly.lsp)
" G: _0 v* o) \2 u( [" h- jif CW ==> http://discussion.autodesk.com/forums/thread.jspa?threadID=292585% W1 `0 A' j/ \" ^: O$ q! J5 [
& y$ N1 R8 X& X8 k1 @0 }
[ 本帖最后由 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 )

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