QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按照逆时针顺序,如何输出CAD图中线段的坐标(如果是多段线,则依次按照逆时针输出各点的x和y坐标。)( K; v+ J% k4 ~( Y9 ]
请问,该如何实现?关键是逆时针是如何设置的?谢谢!盼复!
发表于 2009-10-16 10:56:58 | 显示全部楼层 来自: 中国台湾
这是一个数学问题,先不管如何取得一系列的点序列,假设你已经有依序排好的点串列,只剩如何判断这串列的顺序是逆时钟还是顺时钟。
6 e0 N9 x1 {5 _6 }  J8 `+ z$ e基本原理是,从这些点串列所围成的封闭区域中找任意点,或是边上的一点(点a),再由边上的其它连续两点(点b丶点c)对这个点所形成的角度,依序取其角度之正弦值(sin(点b-点a-点c)),相加後大於零则表示此序列为逆时钟方向,反之小於零,则为顺时钟方向。
, H7 Q" h6 t  t底下为示范例子:
7 I4 e3 h* m( I6 ~. E* a" ]( s& u4 {* \ttt为子程序名,p123n(举例:((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))为点串列,
. r) k! D0 v( z# ~则执行 (ttt '((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))) 後得到 1.98... > 0
" j# n/ R5 @# r) f" T) C- M7 ]表示此序列为逆时钟方向。; c2 n/ z9 I: }/ N9 h

! r- S+ \$ ?; e# [* M原程序:
. S! t# r+ M# B! [# v5 h* ](defun ttt (p123n / pt p23n1 r s)
, s# |) x% ^- k  (setq pt (mapcar '(lambda(a b) (/ (+ a b) 2.0)) (car p123n) (cadr p123n))
+ k7 }  |; U* T4 _7 X p23n1 (append (cdr p123n) (list (car p123n))); Q  O, |5 s; z3 t
r     0.0& T! O7 M  E6 c6 V7 H* Z2 ?7 g
  )
4 S; G* \9 \- @. |. A" K) W  (mapcar '(lambda (a b / s)& Q+ v6 p. d9 p  \
      (setq s (sin (- (angle pt a) (angle pt b))), k  T" E; k1 d2 ~3 L9 X7 `. ~
     r (+ r s)% u$ S0 J& q' Q4 M: b% {9 K" i
      )
- Z+ J0 P; [: N' ?  C    )& i/ K- s. w' m
   p123n
, q8 L% f6 S" D3 g  d( K' i" z   p23n1
( ^( T- Y- t3 _1 W3 j  )
+ e, F$ R8 N0 r- W( e. I  r
# a: k* ^) G  t: f$ N; X9 ~)
- O0 _% i" J6 x# s8 m! l! h- U* s! d! |: V
附加叙述,上述原理所提的任意点(点a),最好是确定在区域中的一点,边上点的选择不是最理想的,若是顶角点,那更糟糕,有时会得出等於零的结果,一样无法辨别方向。

评分

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

查看全部评分

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

; v! P0 Z2 N  N2 ]7 Z
# j& o9 c, z% x: m! Bhttp://www.4d-technologies.com/techcenter/index.htm" M5 o9 v* t3 A1 l
==>* t  ^3 o: X4 R) ]& @3 b
GE_WhatPoly [ Find the direction of the polygon (if Cw or CCw) ]
# f0 {: |4 ~7 o' A: T) T(http://www.4d-technologies.com/techcenter/geom/ge_whatpoly.lsp)
9 Y* s, A2 M2 R7 F' cif CW ==> http://discussion.autodesk.com/forums/thread.jspa?threadID=292585* L1 E. c# K/ x' r2 O
7 s2 _/ V2 e+ t7 F5 D
[ 本帖最后由 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 )

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