PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

[前端框架] Threejs 基于webGL的3D开发神器

[复制链接]

2019-9-1 18:45:09 2522 0

admin 发表于 2019-9-1 18:45:09 |阅读模式

admin 楼主

2019-9-1 18:45:09

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

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

x

, i3 r! \, W! y. {% P$ X; G$ d# g6 Z0 I5 W$ O
废话不多说,官网自己百度下, threejs.org ,入门很简单。
% S8 s9 o0 W+ r$ o9 e' V! s* \  B( ?$ X( Q' q( E6 J: k
创建的javascript脚本如下
0 |  K: T0 s/ T9 F
$ V9 n5 I+ i0 }- ?8 y  P GIF.gif 0 Z9 X- L8 }2 a! o! D- h5 a" m( a
[mw_shl_code=javascript,true]) w9 C/ j% V- Z4 z) t
var scene = new THREE.Scene();
3 l$ Y0 V' ]# Y3 j8 Jvar camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
/ H( y0 t! F) X9 x# gvar renderer = new THREE.WebGLRenderer();
5 P; w7 Z8 b/ x0 v) X- m8 jrenderer.setSize(window.innerWidth, window.innerHeight);! z9 J5 b" l9 h7 w& G, }& `
document.body.appendChild(renderer.domElement);
+ ]7 q4 p7 S7 G! ]. M
/ Z: f' E4 _2 s& y0 K// Refresh Issue : F5 s+ g, C3 f2 f9 R9 j
window.addEventListener('resize', function () {# b1 i/ Q% |" i
    var width = this.window.innerWidth;. G7 m) D! Y' k8 B
    var height = this.window.innerHeight;! f% R, F# H! R; m* m6 _
    render.setSize(width, height);
) e8 s/ [/ |7 C  Y6 k1 y5 Y    camera.aspect = width / height;
7 B8 Y$ @' L/ x- L; a8 Q& @0 ^    camera.updateProjectionMatrix();
1 S7 B1 x9 H3 A1 H, G# M})
2 d" }+ r; d7 G/ x, e8 c
5 T! x$ R1 @1 I: l% V& p# u//orbit contorls
- S8 w) f! n- a" J+ k5 R* Z7 acontrols = new THREE.OrbiTControls(camera,renderer.domElement);
3 M- ~! U) |  I7 Q3 x4 R
* G1 f8 j1 `# u' Z" ~0 L  @+ W//create the shape
* W7 P9 q8 S: Y5 [$ L, wvar geometry = new THREE.TorusGeometry(2, 1, 16, 100);
* S' F, X; F+ g' F! ]//create  a meterial
  f) b- ~, e/ F& Fvar material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });
8 J& ~2 a% y5 y2 ]- ]* p//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];
" E. N% q9 g+ j$ u8 ^$ p5 O//var material = new THREE.MeshFaceMaterial(myMaterial);3 x* d# g" c% X0 G' P

: y# e; d0 N1 \( j9 Y3 [var cube = new THREE.Mesh(geometry, material);
8 w, [+ x8 q* M8 D: U! X% Yscene.add(cube);
; ?3 a' d' Q6 |, j- D- W1 Ucamera.position.z = 5;
( w8 y0 d# R# `5 v' h2 w; B+ e) C2 ^, D- z9 z
" L4 |% z# l( N( F1 V& `2 E! b" L
' o% o5 s, c: N; W4 Z0 F

0 {! i0 }; a; s' X. [$ N# h$ p: e9 y& v; c3 S. e( C# b
//rotate . u2 I; I6 f9 U# ]6 G8 v9 {
var update = function () {/ ?' V9 l% I- o4 @" J5 s. F0 h
    cube.rotation.x += .01;
: b) y& h1 |! @, S. ], f( S' D' K    cube.rotation.y += .02;6 X. v1 w8 i7 i2 }3 z# [0 a0 m8 f
    cube.rotation.z += .02;5 [  [5 \$ {4 ^! y: K) R
}3 O* Y5 A: s! \2 j* r' R. N
3 ^! b  E/ N! O( ?" {; r
var render = function () {' q' |$ h- i" X* |8 r
    renderer.render(scene, camera);
' j1 g, _0 w# v7 Q8 r6 J}* F* x& Y% E! O  q, i* D! |

: v4 X% R$ E7 m' s3 o7 Z6 N( X9 g1 o' c& \! ]; s* w2 {; a

4 v5 F5 J! R/ ~, z; z( ^var Gameloop = function () {% y$ \; u3 F6 t, [3 S" E
    requestAnimationFrame(Gameloop);
! D- L8 i6 x4 Z+ o0 s    update();
+ ?( ^+ P  r1 _/ ]/ e    render();5 x9 T; o0 p6 I' r% |" s2 Z
}& O9 v7 K, ?& }# v. ]6 n$ D0 E$ s
8 M  ^5 ?# ^0 y
Gameloop();' L+ p  a* Q# J" F# Y6 j4 q
[/mw_shl_code]
2 V0 A& b) m$ A8 K# L
0 ]# C; w' x: N7 p6 a, `
' I) e. Z, o7 A4 C, L引入争取的html,! @' N2 Z# J: w, K
4 [: ?0 I$ W6 R( t* n; e, b
[mw_shl_code=html,true]<!DOCTYPE html>" X  V2 u8 u' D$ ^& {% @+ A
<html>' F( U  _! {% I$ w5 Q) u2 {

) F5 f4 k- x" H3 z+ V& I* M<head>' J% V: n$ s+ Z/ {- S8 a+ c
    <title>hello ThreeJS</title>; D6 C1 w% _$ n  g% Q9 W
    <style>
- N/ s" E0 [) d4 K' m        body {2 p- Q* |. i7 I' x# B8 {) J  G5 u
            margin: 0;
* K9 w& R& l5 f. R        }- M6 ^6 P4 M, m  z
0 {) t9 Y+ n) I& S& z
        canvas {$ y# v1 f6 f" U& H
            width: 100%;
/ a4 U% j, Z! y, \# j- n            height: 100%;9 q2 W8 C2 d% m: @3 J
        }
# H6 ^( `: O1 n" T
3 G) [& l! \$ P) f( G: M8 ]- @* D! k) W        h1 {9 n. O0 ]4 N( _
            color: aqua;1 v' X: Z' k4 K
        }* f, V; z' `% C
    </style>
  [5 {# @- k. m9 M</head>
; y' s4 J' Y+ E3 N2 k
# e1 c# p8 ~, {( i<body>
2 w; k$ L, U& b2 o0 I <script src="js/three.js"></script>6 l& E; M' F" ^. ]: f) F$ o
    <script src="js/OrbitControls.js"></script>( _  k" V3 [8 y. e6 M$ F5 e
    <script src="myjs.js"></script>* I9 t4 ~8 k( r% |% ?: w) C
  
$ u7 V2 t$ A- f; P7 O" e
& L0 ~# @/ A! ^5 K
$ U/ J4 \5 {' q; T5 w8 Z5 I
; D  o* d; C& H" \$ v</body>
( e" ~& m( D, e3 d* d. y
0 J; A) s# ]( Y! N/ _! X3 \  M</html>[/mw_shl_code]
$ q) }$ _. m  v% H$ C7 Z$ R5 P% r% x' w
效果点击这里:. r* Y) H5 y2 V: F# U4 ?
7 }+ K4 F; ~' f3 c" {
http://plmhome.com/doteam/lesson1.html! l5 I# h8 p2 E2 o5 t
* o  J/ O! Y$ t( n# b8 h
% }9 p# B- ~# j- Q4 r
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了