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 3432 0

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

admin 楼主

2014-8-25 15:14:54

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

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

x

% N4 y6 t  W& n3 ?5 _8 J# v4 K: H3 Q) d; ]. I& a& `7 A( Z* \

1 P0 f/ E& ^' A1 C#include <math.h>
2 q% k' v1 D9 v$ W//矩阵复制
5 A6 g7 O: R% [% l3 J% N* `/ ivoid Project_Matrix_Copy(double from_mtx[4][4], double to_mtx[4][4])) r; T0 t$ T- s4 n2 T
{5 c% Z4 T, M. G) i+ W+ r
        int i,j;2 m( O# n$ e) D, q7 Q
+ Y) L9 P/ F9 X5 P" o7 k' Z
        for(i=0;i<4;i++)7 t# H, \  [/ _. f3 ~9 y& r5 j6 Z0 G
                for(j=0;j<4;j++)
6 M* f* Y% {! x, m' P                        to_mtx[i][j]=from_mtx[i][j];' q" Q6 ]( g; s- ^* P6 y( n1 x
}7 w' a  Z9 f7 b* [
//矩阵初始化
. q8 g" [/ n6 E1 W1 Nvoid Project_Matrix_Identity(double mtx[4][4])
+ _# n. j4 \+ V- }' Q( m, r5 M{  T3 P  I8 @' @7 ~! O
        int i,j;7 h! S' c1 Z8 A. `8 K3 p
       
% d9 l- [3 z5 a        for(i=0;i<4;i++)
: B4 m; Q9 m) @, p' r( t5 R                for(j=0;j<4;j++)
4 N2 u& T! }6 v& `                        if(i==j)4 Y' h  i1 M" K! V( h
                                mtx[i][j]=1.0;
8 x  K' M7 f& `( l                        else
# y2 Y: h1 s2 ~1 z% D% d! _4 q                                mtx[i][j]=0.0;/ W5 z) H3 u7 a# A
}! T; [8 f: i. h" F5 E% I
//矩阵相乘
6 u$ B. O3 _& x- W4 [void Project_Matrix_Product(double left_mtx[4][4],double right_mtx[4][4],double get_mtx[4][4])9 J5 k+ {3 n- R# s( B- x$ h0 l
{' J8 S& f% p1 q

# d# [- z4 V9 I( v" v! P3 p        int i,j,k;
" }) c8 K. T  e3 X" u        double left[4][4],right[4][4];
9 m. l( \' Y& z( J- c% L. D# p6 R9 f7 K3 x
        Project_Matrix_Copy(left_mtx,left);% ~, P/ }5 b5 ]% b% U
        Project_Matrix_Copy(right_mtx,right);+ W& I! T3 L5 y4 b! `
        for(i=0;i<4;i++)5 m* M# E' H/ O6 z" l
                for(j=0;j<4;j++)
+ O1 J, j& E( g# i3 j. ^                {
2 B; m+ z- l4 m3 A- P, p, z) J9 K                        get_mtx[i][j]=0.0;9 U: h4 T# G# w- B9 \1 V! i
                        for(k=0;k<4;k++)
7 [, \& _5 P5 f                                get_mtx[i][j]+=left[i][k]*right[k][j];5 N! @1 Z. i- o
                }; z& N& b, i8 N3 a' {+ M6 a' O
}, f: `/ K% ~$ S1 P# P- Y
//转置矩阵; H7 W* _2 m7 Q% |: @, }
void Project_MatrixGet_Transpose(double mtx[4][4],double transpose_mtx[4][4])
% P7 q0 X: E9 r( A! [8 u2 S' U{
1 f. c! K! [; {6 f3 \3 C        int i,j;4 k# h/ L+ g1 n# y
        for(i=0;i<4;i++)
, h1 Q7 n2 U7 {9 a) e% g4 r        {
$ U; J" T: U: z' l( L/ d2 [                for(j=0;j<4;j++)
' W( X/ T& \  p8 H9 T- I9 y                {) r9 k1 W$ `$ d/ g
                        transpose_mtx[i][j]=mtx[j][i];' @; b1 Y4 {# C& _# b8 ]: D& Z
                }6 B- |2 |: b1 R. a4 m( `
        }) L$ J# M& \+ b
}7 a* K* [8 X: y0 Z- M! n- j, L
//从11元组获取变换矩阵3 K5 z5 Q) h4 t9 U& p. D
void Project_Matrix_Get_From_Move(double translation[3],double point[3],double rotation[3],double angle,double pos[4][4])
% n4 j' a- I% C, d{) A0 a, T0 f& }1 F
$ e9 T. N/ k2 s$ ]6 |' @/ L  {
        //Project_Matrix_Get_Rotation(rotation,point,angle,pos);9 v+ Y  x; k( ~+ u- E( h& C
        int i,j;+ B! s; e1 h, ~) [9 s
        for(i=0;i<4;i++)/ h3 K4 p4 v! P( v' o4 i
        for(j=0;j<4;j++)
: C: z. s, k# ?) X/ v                if(i==j)
- `. k" i& W: I  d; W" y                        pos[i][j]=1.0;
# r6 v3 r9 Z% P" R                else: L! n" c  s0 c5 W+ Q7 d
                        pos[i][j]=0.0;+ \9 P2 |4 c4 V
        pos[3][0]+=translation[0];. n; L. x) N7 H% v1 J  E4 l
        pos[3][1]+=translation[1];
- r: A, w" G) P1 {6 J) Y" w        pos[3][2]+=translation[2];
- {6 C3 `, h% ?0 l+ _( w5 s}4 D) G  C  |  D+ R7 \8 {7 M
//向量缩放
2 g7 f. A- \6 J, n3 t2 ~8 w4 Bvoid Project_Vector_Scale(double a[3],double scale,double b[3])
5 e# c0 Y# e2 O0 N. k6 a1 ~{
) m- O1 p" k, M5 x4 E        b[0]=a[0]*scale;
0 z- D, f5 g* E) @. Q8 h' }        b[1]=a[1]*scale;
# D4 y# B/ Q6 n; d4 m' x. Y* A4 y        b[2]=a[2]*scale;
" F. w: E/ h: |. k5 ~  w/ b: E}
- K# D" ^( i9 e- `6 @
- t$ k3 v& `, e: c
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了