|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
) E. H) D$ {6 ^# |6 XNX二次开发源码分享: 在绝对坐标系和视图上点映射& p1 C5 i2 Q3 G X: x6 A
# l+ B& j0 ?1 F; o( B* X: ^
1 J; ~: B* ]7 c0 _/ J1 g0 \[mw_shl_code=c,true]1 {" P, o5 a% p% P& U8 ^
Function MapView2Abs(ByVal aView As View, ByVal coords As Point3d)
; X- |5 p$ o, T3 ?! j Dim vmx As Matrix3x3 = aView.Matrix! }- z! p# @: j9 C1 T
Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}
H; n6 i+ Q) d) o$ o Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}
. N; P! H( K& e% C. d. C: M1 z u Dim mx(11) As Double
* Z4 ]( j8 T0 d2 T Dim irc As Integer% _; v' ^( s! W6 O) }6 s
Dim c() As Double = {coords.X, coords.Y, coords.Z}+ X4 B9 m; G+ c' ?; u
- F4 u1 u: n- I ufs.Trns.CreateCsysMappingMatrix(vw, abs, mx, irc)
# |! ^+ Q1 Y0 e2 ^7 ^: E ufs.Trns.MapPosition(c, mx)) w3 z; \- S) U# ]6 u
h- d# e7 r {7 A1 z
MapView2Abs = New Point3d(c(0), c(1), c(2))
, O. H1 x/ T- V8 I8 Y End Function
0 D8 S' [8 ]2 Z" h- F- g5 v9 q
. Q2 |- q3 E3 S: B/ y Function MapAbs2View(ByVal aView As View, ByVal coords As Point3d)% J& r: w+ P0 J7 ]. C7 b
Dim vmx As Matrix3x3 = aView.Matrix
1 {6 o$ B0 I' O2 S Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}
Z! t' F- C& m Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}$ K, D4 g" }+ b, F' _
Dim mx(11) As Double5 }7 m+ q# z, X! G
Dim irc As Integer
$ s8 Y! J+ G* v* Y* ]1 s* p7 f Dim c() As Double = {coords.X, coords.Y, coords.Z}
! F% n2 Q3 m: R! g) h6 x) d) z4 S, E5 ~( y- V
ufs.Trns.CreateCsysMappingMatrix(abs, vw, mx, irc)1 `$ u( H9 m1 p& E1 w5 C: }
ufs.Trns.MapPosition(c, mx)3 Q( G0 a% I* O5 n; V, r! s& ?
+ }9 d& P- _5 w Z( a/ A7 c. y MapAbs2View = New Point3d(c(0), c(1), c(2))/ C& n: O# G/ U7 j/ g
End Function: F l; l# a' |% I6 t: A A
[/mw_shl_code]% Q0 g. ^6 B0 k
|
|