QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
11天前
查看: 3308|回复: 2
收起左侧

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

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

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

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

x
按照逆时针顺序,如何输出CAD图中线段的坐标(如果是多段线,则依次按照逆时针输出各点的x和y坐标。)& E# u+ F$ ]( {* g
请问,该如何实现?关键是逆时针是如何设置的?谢谢!盼复!
发表于 2009-10-16 10:56:58 | 显示全部楼层 来自: 中国台湾
这是一个数学问题,先不管如何取得一系列的点序列,假设你已经有依序排好的点串列,只剩如何判断这串列的顺序是逆时钟还是顺时钟。
% D0 l* c$ F3 J* ?) Q$ J基本原理是,从这些点串列所围成的封闭区域中找任意点,或是边上的一点(点a),再由边上的其它连续两点(点b丶点c)对这个点所形成的角度,依序取其角度之正弦值(sin(点b-点a-点c)),相加後大於零则表示此序列为逆时钟方向,反之小於零,则为顺时钟方向。' }' P9 H" D6 H8 A; ]1 D
底下为示范例子:
! }8 U1 E5 C8 g* l+ }) Tttt为子程序名,p123n(举例:((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))为点串列,
0 W& ], o- u. u+ i* K" e, ?则执行 (ttt '((0.0 0.0 0.0) (1.0 0.0 0.0) (0.5 1.0 0.0))) 後得到 1.98... > 0
* O, N% K6 p" i- M+ e; X  V9 Y, s表示此序列为逆时钟方向。
# ^; `4 L1 M: f, U0 |# G  ?/ Y6 e1 \0 H# b6 `7 _- k4 b
原程序:* R1 @& l$ j5 d7 u) P, o8 `. ^
(defun ttt (p123n / pt p23n1 r s)
8 G$ S1 d7 X' l  F6 Q) v4 F  (setq pt (mapcar '(lambda(a b) (/ (+ a b) 2.0)) (car p123n) (cadr p123n))
6 b. F1 n, T$ `5 y: T% O: C3 M p23n1 (append (cdr p123n) (list (car p123n))), V; A1 E: y: W; v
r     0.02 ?6 h8 k3 E2 c; F; ^7 k5 G& Z
  )+ c' w9 U9 s* {& p
  (mapcar '(lambda (a b / s)
3 u. P( v. t6 K      (setq s (sin (- (angle pt a) (angle pt b)))6 e. d4 h- \% L1 O
     r (+ r s)
3 s- G; u1 M6 e* u# o. ^2 _6 \      ). _% T) u# C% V9 c0 |# x8 k0 L
    )7 L8 |3 I1 O5 v- o) N) T# J! ~6 i
   p123n
7 C1 x- J" R2 |% _7 l/ i& V   p23n1
% `( p2 R4 \3 c$ A8 I  ), V. t/ Q7 [) K, T: J* x2 v( s
  r/ Q  D- J* a" T
)
4 Y& [* \; J1 l6 J" w* s7 ]6 S. i. p% C3 U% T: A% r, v# p  M* o
附加叙述,上述原理所提的任意点(点a),最好是确定在区域中的一点,边上点的选择不是最理想的,若是顶角点,那更糟糕,有时会得出等於零的结果,一样无法辨别方向。

评分

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

查看全部评分

发表于 2009-10-16 21:47:48 | 显示全部楼层 来自: 中国台湾
...关键是逆时针是如何设置的...
. M0 V4 |- E9 P! K) w- {
" a8 [3 J7 c4 Z
http://www.4d-technologies.com/techcenter/index.htm
+ h/ y/ }% ]0 n2 F5 J==>5 ?! d  g2 s1 H9 K7 Q- ]! z
GE_WhatPoly [ Find the direction of the polygon (if Cw or CCw) ] ( Z4 A) u4 X( h2 _2 b
(http://www.4d-technologies.com/techcenter/geom/ge_whatpoly.lsp)) ]) a1 L5 J" M* t' U
if CW ==> http://discussion.autodesk.com/forums/thread.jspa?threadID=2925852 Y. [+ V$ y+ I3 d& v
! ^* S+ D; L- x5 X4 x' n
[ 本帖最后由 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 )

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