PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

[二次开发源码] UG NX二次开发源码分享:矩阵操作的基础算法代码

[复制链接]

2014-8-25 15:14:54 3424 0

admin 发表于 2014-8-25 15:14:54 |阅读模式

admin 楼主

2014-8-25 15:14:54

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

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

x

5 q7 n1 I. R- z
0 _9 L' e  O9 C2 @& e, L( y3 ?! t1 n! x, e' W, z
#include <math.h> + ^$ _' v6 u7 B  b. K! ~
//矩阵复制
! B- k0 s  J9 ?8 ?8 w' [3 w' O( Cvoid Project_Matrix_Copy(double from_mtx[4][4], double to_mtx[4][4])- C' S4 {! @* J% h, u0 ]( i
{( x8 X8 P7 m. g* A; ?
        int i,j;! X; i& e4 Q8 E* S' y) O6 o
' v: B4 q/ }; {1 }
        for(i=0;i<4;i++)  N& E- [" m3 _) x$ ?
                for(j=0;j<4;j++)
+ D( Q* u5 f. H  |% M" K: i1 f2 o                        to_mtx[i][j]=from_mtx[i][j];5 n5 ~2 H, ^, l, J8 E
}
$ O2 x( z% b$ E//矩阵初始化
2 p& m& z% ?  t* X/ _7 Gvoid Project_Matrix_Identity(double mtx[4][4])" m6 J( v% G  u4 Y5 E: h  W9 U5 ^; e
{' T9 X$ n6 O+ y
        int i,j;9 O7 p# [$ y( t
       
/ t9 N# |6 h* z- `. H        for(i=0;i<4;i++)
6 W! ~) _0 x" f# i1 T' w5 S                for(j=0;j<4;j++)4 v9 j( z# U/ _% ^
                        if(i==j)4 ^) I- t9 z( |/ k# U/ u& h
                                mtx[i][j]=1.0;6 i9 ]: k/ C) S) y& L
                        else
" C+ J, @  N$ u1 O8 E/ M$ ~6 a4 a4 A                                mtx[i][j]=0.0;/ y" ]: `  E6 g
}5 u4 N6 ~8 m7 r, x
//矩阵相乘9 t* U7 A" X6 \0 l+ @
void Project_Matrix_Product(double left_mtx[4][4],double right_mtx[4][4],double get_mtx[4][4])
' r3 z! B6 |1 k: L. j) \) Z0 ]$ O{( {4 l, @/ p) A/ j4 y) k$ K

! y8 {! V6 I# ]. U3 V        int i,j,k;
* J: B+ T5 e& e8 W( R        double left[4][4],right[4][4];9 l5 d, o0 r, h7 `' q8 P0 v- C* D

6 Q' r* _8 M& e        Project_Matrix_Copy(left_mtx,left);: K9 S8 `4 ^- N, ]+ e
        Project_Matrix_Copy(right_mtx,right);
9 m3 E6 [# |; s5 i0 E6 ^% F        for(i=0;i<4;i++)5 [+ J3 F( ^7 u7 f& ^8 l
                for(j=0;j<4;j++)
' v% ]5 C! [8 B6 j$ a3 R/ {' L                {- q. c1 N2 A0 L7 W8 C* p
                        get_mtx[i][j]=0.0;+ E9 E0 T9 p2 c( y. v# B6 K, u2 X# C
                        for(k=0;k<4;k++)# B) [: d& k. m, q- i
                                get_mtx[i][j]+=left[i][k]*right[k][j];$ A' r* W# t, r- v
                }" _, Z7 {* y, y; @
}6 y/ C* p* z) l/ m! f2 V- s- N5 T
//转置矩阵+ I# b# w3 s- d& e  o. L0 r
void Project_MatrixGet_Transpose(double mtx[4][4],double transpose_mtx[4][4])
6 o: ]1 n2 o5 I8 m{
( i1 @* [) e% v9 }/ s        int i,j;2 t9 P# R4 g- r
        for(i=0;i<4;i++)$ i8 `" T- |  d& u+ ~# e
        {. o4 n* p' {6 Q, G9 ?
                for(j=0;j<4;j++)
4 l( q: C+ M5 Y, \; v' Y                {
# y9 P6 B3 H5 X6 M4 k                        transpose_mtx[i][j]=mtx[j][i];
; C4 |+ `$ C8 Q: L' Y                }
4 {9 n6 L5 `5 j3 }4 N        }
! t7 K$ x- k) g1 t1 [}
! m/ q: b! P) H  f) e+ Q//从11元组获取变换矩阵! a+ N" z0 o3 W7 p! t
void Project_Matrix_Get_From_Move(double translation[3],double point[3],double rotation[3],double angle,double pos[4][4])3 d$ F- l9 P( C" f2 k( z; y
{3 ]! U6 E) q5 ], q
4 E) h9 _8 r: n+ c. l8 {) z
        //Project_Matrix_Get_Rotation(rotation,point,angle,pos);( V  d( {9 a9 ^; v
        int i,j;0 P+ S5 q) K( }0 u) T% N
        for(i=0;i<4;i++)
  t; Z# a- Q+ S# \        for(j=0;j<4;j++)4 D. @8 ^1 N3 V- x
                if(i==j)9 q& e* t  f1 }0 }" O
                        pos[i][j]=1.0;9 r* l: ^* T1 P9 U
                else' y3 {7 [. J5 v, h  ~5 g/ V$ S8 ?
                        pos[i][j]=0.0;
$ w; W+ j$ C4 A5 u5 j6 v: J. \        pos[3][0]+=translation[0];2 W0 C2 |, Y& N# s& Q! C
        pos[3][1]+=translation[1];8 p$ r: X: u, Y+ j& s9 C
        pos[3][2]+=translation[2];
8 F) e6 R- f, j! i& C}
9 ]* Z% X& F- ]- }//向量缩放
1 w0 j3 }( L; J# C/ qvoid Project_Vector_Scale(double a[3],double scale,double b[3])
- K6 u" ]* X0 ^' N{" Y! P: K9 q2 B
        b[0]=a[0]*scale;, e. c9 [- R' W  P
        b[1]=a[1]*scale;) [; E2 y' ^/ g+ o
        b[2]=a[2]*scale;; ^8 S) G+ }/ s* C0 C- [
}8 ]) E5 a5 O. F3 J
. Z4 E: }7 x! M' C8 A- O" Z) ~: y: F
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了