QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按照逆时针顺序,如何输出CAD图中线段的坐标(如果是多段线,则依次按照逆时针输出各点的x和y坐标。)- t" k! h3 Y' z, q: }1 m0 Y& g
请问,该如何实现?关键是逆时针是如何设置的?谢谢!盼复!
发表于 2009-10-16 10:56:58 | 显示全部楼层 来自: 中国台湾
这是一个数学问题,先不管如何取得一系列的点序列,假设你已经有依序排好的点串列,只剩如何判断这串列的顺序是逆时钟还是顺时钟。
# a  ~7 s1 b6 O! H+ P基本原理是,从这些点串列所围成的封闭区域中找任意点,或是边上的一点(点a),再由边上的其它连续两点(点b丶点c)对这个点所形成的角度,依序取其角度之正弦值(sin(点b-点a-点c)),相加後大於零则表示此序列为逆时钟方向,反之小於零,则为顺时钟方向。! _$ \$ c0 z5 x& b( l
底下为示范例子:
& Y+ K" D% y' L1 H8 Sttt为子程序名,p123n(举例:((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))为点串列,
* X# a9 I# b$ s则执行 (ttt '((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))) 後得到 1.98... > 0) U- A7 [" U6 m) v/ [
表示此序列为逆时钟方向。9 ?* g9 q2 O5 A  A, T, X
- M2 W' D& V  t1 R* x9 ]% O$ I+ L
原程序:3 }( ?* g/ `5 q- h
(defun ttt (p123n / pt p23n1 r s)7 c5 y3 H0 x& S) \5 [2 U+ i
  (setq pt (mapcar '(lambda(a b) (/ (+ a b) 2.0)) (car p123n) (cadr p123n))
' i7 {+ N2 E  ?( S2 X p23n1 (append (cdr p123n) (list (car p123n)))
% Y7 \) d  e* Z' b2 J6 A% W r     0.0- R5 @& z6 x/ @5 f
  )
) X7 \) g% z# Q# l# d; J  (mapcar '(lambda (a b / s)
% Q6 b! d4 H8 Q  w# z2 l      (setq s (sin (- (angle pt a) (angle pt b)))
; ?, C/ _$ D$ O     r (+ r s)8 F9 Q) r! A, R  g
      )" h* J( \0 C- U* N: {' ^
    )
2 J2 E! u: }% @0 j; @. O& ~6 _% _   p123n4 v- h6 }- K# e3 T
   p23n1
! d8 @, t5 d7 p! C  )' P4 g: k1 `, P1 @! ?7 Z
  r
6 L0 y  Y/ S$ c0 m- T)
3 b, ~0 o' {1 D5 A8 \4 |: Y* o  ]9 k- M1 S1 Z- q
附加叙述,上述原理所提的任意点(点a),最好是确定在区域中的一点,边上点的选择不是最理想的,若是顶角点,那更糟糕,有时会得出等於零的结果,一样无法辨别方向。

评分

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

查看全部评分

发表于 2009-10-16 21:47:48 | 显示全部楼层 来自: 中国台湾
...关键是逆时针是如何设置的...
5 a+ R( D, r. ]  y* v! N0 M

, q; u/ ~# E9 [7 I9 z# G) rhttp://www.4d-technologies.com/techcenter/index.htm
' N( x! @1 a) E==>
) l9 E5 P, G& N/ p1 A4 c' s1 CGE_WhatPoly [ Find the direction of the polygon (if Cw or CCw) ] / [+ {, @5 y% M1 [) j. i4 ~
(http://www.4d-technologies.com/techcenter/geom/ge_whatpoly.lsp)  u" j% @7 i7 A$ I
if CW ==> http://discussion.autodesk.com/forums/thread.jspa?threadID=292585  |) ]* r& y; z; K6 n3 c2 B" d) h

9 g2 w% X; `6 Z/ |[ 本帖最后由 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 )

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