QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按照逆时针顺序,如何输出CAD图中线段的坐标(如果是多段线,则依次按照逆时针输出各点的x和y坐标。)) p& g2 V! n7 S6 q( [/ i
请问,该如何实现?关键是逆时针是如何设置的?谢谢!盼复!
发表于 2009-10-16 10:56:58 | 显示全部楼层 来自: 中国台湾
这是一个数学问题,先不管如何取得一系列的点序列,假设你已经有依序排好的点串列,只剩如何判断这串列的顺序是逆时钟还是顺时钟。; `) \( ~7 Q. W5 j- I9 t) _
基本原理是,从这些点串列所围成的封闭区域中找任意点,或是边上的一点(点a),再由边上的其它连续两点(点b丶点c)对这个点所形成的角度,依序取其角度之正弦值(sin(点b-点a-点c)),相加後大於零则表示此序列为逆时钟方向,反之小於零,则为顺时钟方向。
' |- H. c! J6 }, f) U1 ^底下为示范例子:
5 C3 x+ {3 E2 `7 T! p+ H4 R2 vttt为子程序名,p123n(举例:((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))为点串列,8 {; B* G1 l8 ^- G$ {' ^8 r# o4 |) Q
则执行 (ttt '((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))) 後得到 1.98... > 0$ \; E; u, A' }1 D$ z8 T
表示此序列为逆时钟方向。" ~6 T& p5 s0 w

7 c9 S* `2 z# {6 O6 v原程序:
& i5 k+ T: i% |- P6 g- g(defun ttt (p123n / pt p23n1 r s), l! J0 l, Q! ]! |& M: _% |" w
  (setq pt (mapcar '(lambda(a b) (/ (+ a b) 2.0)) (car p123n) (cadr p123n))0 A$ a* Z; J- G3 L! f$ \2 k
p23n1 (append (cdr p123n) (list (car p123n))): w1 `9 _- y( e! X
r     0.0# D# s$ s" f5 s
  )3 B% @' i- |# r. f# t
  (mapcar '(lambda (a b / s)% t! D0 W) s' `& J( ]; a  |
      (setq s (sin (- (angle pt a) (angle pt b)))/ q2 F  v1 C- K8 F1 X5 w
     r (+ r s)
1 l0 e7 z  ?5 E      )
5 ]2 t+ T, |1 B    )
& O8 C1 p6 H  x/ k* i2 p   p123n- c  N3 A. A8 a- f* W6 G( s' @
   p23n1
  |4 H/ B7 v. a" x8 t& r. `! X+ F  )+ Q* a1 n& H# A* k: E, F5 u3 [
  r: G9 Q; |% ?+ q; ~* L3 H
)5 H$ `6 ?0 N) M0 l* R

+ v# C6 {0 V0 r  ]0 l4 Z/ x/ J附加叙述,上述原理所提的任意点(点a),最好是确定在区域中的一点,边上点的选择不是最理想的,若是顶角点,那更糟糕,有时会得出等於零的结果,一样无法辨别方向。

评分

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

查看全部评分

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

) \2 |$ p) J1 S$ }5 X$ ^* c
2 _3 P  X* ^' x; I: u1 Fhttp://www.4d-technologies.com/techcenter/index.htm
: M' m( R9 |- J8 p0 K==>; s$ c1 H% |# K! c" l' K1 t  `7 M8 K
GE_WhatPoly [ Find the direction of the polygon (if Cw or CCw) ]
) ]* b' h0 n- \8 |1 s* o(http://www.4d-technologies.com/techcenter/geom/ge_whatpoly.lsp)4 Y6 k5 W" D9 t3 B
if CW ==> http://discussion.autodesk.com/forums/thread.jspa?threadID=292585- O2 ^' s' C. }3 F

$ ~; a1 X' x% J. ^[ 本帖最后由 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 )

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