|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
. G9 _% i2 H. BNX二次开发源码分享: 在绝对坐标系和视图上点映射9 F. Q" I$ a2 X' @$ d- ]7 M
3 \$ q) [! m: d5 U% y
& T5 ^9 n" G# C7 D* L- l6 q
[mw_shl_code=c,true]
# c( l& p- K' `$ T9 w! C Function MapView2Abs(ByVal aView As View, ByVal coords As Point3d)
% f4 o) d# l) s' l1 w- d Dim vmx As Matrix3x3 = aView.Matrix8 [/ q% @+ K# F9 N* u) f4 Q/ X
Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}( c$ o- u5 y& ~4 L% e. X7 r; V% v
Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}
: j& ]3 O4 t9 l! v) A. _1 C Dim mx(11) As Double
# u" u( t( m. Q, U1 a g8 p+ J Dim irc As Integer
S2 Y4 G7 E# i Dim c() As Double = {coords.X, coords.Y, coords.Z}
6 ]7 g4 L& s! v. \. A: R& `$ T
5 w1 N- v/ o, o4 [; w ufs.Trns.CreateCsysMappingMatrix(vw, abs, mx, irc)9 w! W% O( l+ f& W+ I
ufs.Trns.MapPosition(c, mx), v. w' }7 Z8 h. i J
: U) U) k( d4 H7 _
MapView2Abs = New Point3d(c(0), c(1), c(2))
3 t! r& ^$ \% O8 z3 ]4 W. M End Function
/ \+ B# C" y+ c: ~2 p! |* r: J: }/ E7 h8 [6 W
Function MapAbs2View(ByVal aView As View, ByVal coords As Point3d)1 A! S* Q/ p0 }4 a
Dim vmx As Matrix3x3 = aView.Matrix
5 e& I( P9 Y4 i: z Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}! F3 W3 ^& D& J' }
Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}9 u$ \' X3 K. J* i# p6 i0 f
Dim mx(11) As Double
0 s% V% m0 M9 L( Y' G5 r1 j Dim irc As Integer/ i u: @ m [: p
Dim c() As Double = {coords.X, coords.Y, coords.Z}
* V7 f2 r& e5 @" M$ z7 d$ z2 f- y2 s
ufs.Trns.CreateCsysMappingMatrix(abs, vw, mx, irc)% l7 u2 G' Q* Q; Q8 i8 P) j4 Q
ufs.Trns.MapPosition(c, mx)
$ ~8 V# a0 P; E% v
1 D/ V* H+ n, r. d b8 |# R MapAbs2View = New Point3d(c(0), c(1), c(2))" H9 E* Y$ p( z
End Function1 n7 G$ J2 h: z) w8 I# n0 r, R
[/mw_shl_code]
: N/ T% m" m9 G' ~; H# @ |
|