PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2019-9-1 18:45:09

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

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

x
) `) x9 I0 z1 R: C9 v# Y
2 G# d" n. }) @! W
废话不多说,官网自己百度下, threejs.org ,入门很简单。
0 z9 K+ l4 c0 T; t  u+ i( O
  e' t" D  i& _9 H创建的javascript脚本如下
$ t/ j; p- t! b- n3 e& E
1 w" D3 `9 F9 r9 n% k; o+ e1 m( T GIF.gif - E7 m/ c# ^" w5 H1 O% T7 B; M8 \
[mw_shl_code=javascript,true]4 I7 U6 ^! e  L
var scene = new THREE.Scene();& C9 j' V* {0 V; i
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);, {/ y+ v+ `4 @7 f( C! \
var renderer = new THREE.WebGLRenderer();; g& t2 O1 v0 L/ L6 y0 P
renderer.setSize(window.innerWidth, window.innerHeight);
6 d% o+ O0 @! c  @document.body.appendChild(renderer.domElement);% d0 [9 J# i) J
: R: A4 y" h  J+ k
// Refresh Issue / t' R* ~/ i3 [, Y0 }* S
window.addEventListener('resize', function () {
( j# e; d! D( v- O: U4 s) n    var width = this.window.innerWidth;5 j9 ~( p( K& p' v4 ^+ q8 c+ N8 {
    var height = this.window.innerHeight;4 s8 u' b) Q- p% P9 ?
    render.setSize(width, height);) c( T% w/ n. Y) s
    camera.aspect = width / height;$ y) Q' W( C3 F& y6 a
    camera.updateProjectionMatrix();
& I; ^5 |( z1 q+ @+ i0 x. k$ p, }})
# b4 L# M$ u0 r+ E" l8 h" D; Y5 j7 k1 \; u; U8 b" N, x0 n
//orbit contorls# e8 @# }! H9 L
controls = new THREE.OrbiTControls(camera,renderer.domElement);4 W: D0 W, y: r3 M& y& b& j5 J
7 t5 R$ p/ W. A
//create the shape% u2 Y1 Z( _, Q  ]0 k
var geometry = new THREE.TorusGeometry(2, 1, 16, 100);
! @9 d: u9 ^* o$ j( T$ }: R, `; J; g' R//create  a meterial: o- y' Y9 X! G9 W$ _
var material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });/ E/ h* k0 |' T8 `8 c( c, V
//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];
* R; B# V# I6 G& \0 f//var material = new THREE.MeshFaceMaterial(myMaterial);
3 L1 P5 J& H" |* s
" R" C/ z0 Y1 w  ]" o" ?: f% h, lvar cube = new THREE.Mesh(geometry, material);
( C6 F- ?8 j" M/ V6 _scene.add(cube);# D, j6 w9 Y# m; C. w+ S" P
camera.position.z = 5;
+ O7 D9 a/ h# \: ^) m8 P: I+ T* s8 i9 S* [; A. f$ `
  y4 q, a  w4 `! J/ u- P
) T* E: W- n" k' u4 p
& s. _% E. I" P) z) \' }/ A
* V' ?1 \5 t/ F& N: K
//rotate , w/ v2 Y1 L& V5 `
var update = function () {
/ ~6 ^  O% N* _    cube.rotation.x += .01;
+ @% v6 C. x% O5 i0 U8 |, O    cube.rotation.y += .02;
& }0 i8 [1 B  A3 t2 b    cube.rotation.z += .02;# w" O7 I. q0 m# D3 m$ ]
}6 ?- H+ {# j9 c. V  C- b3 z

) T6 k1 w1 B) K5 O9 S% S# \0 Dvar render = function () {
+ f' F0 u8 o- T( I% c! F3 y    renderer.render(scene, camera);. f# w; T) G6 m, w# y$ Y
}
$ f  E" Z: q( ?  g  i+ f
* p; t8 J, w1 K: _! s1 f9 r: {$ H# H8 l; _: g( j! b
8 B9 n; m/ w/ q6 K5 {2 j$ n3 U( R. A
var Gameloop = function () {; }9 S$ V# A0 W5 e' z9 d7 e
    requestAnimationFrame(Gameloop);! W: g) _/ Y7 z& [5 ~
    update();7 g8 s# K9 ~$ v) h! d
    render();
, y" F* ]4 V) ^: k5 w# J}! K" c8 Z: c" d- H9 D, f

$ ]) t$ s' w2 j* w5 LGameloop();
( k# I0 _8 @  c[/mw_shl_code]
5 h: G6 c2 m, x; V! K
3 H2 `: e; X4 o4 ^/ e1 a6 ]8 Y
2 @# T2 j1 \; o4 W$ q引入争取的html,
$ V  |! s* ~( [$ Z! @# L- l
1 y' ~$ {0 P+ Z[mw_shl_code=html,true]<!DOCTYPE html>
% ]$ k% N1 P% J$ O<html>
6 q- z5 I; @- R! l! k; w* D1 _3 A3 y* J1 F
<head>
) R1 `/ t6 a: W; P3 X9 q/ L    <title>hello ThreeJS</title>) }) ?4 }( U6 Z
    <style>
% i6 z3 u3 w) {+ A0 @% E9 C: k        body {
4 Q/ e+ v% c. X! \            margin: 0;
) L) W7 b# h& |9 J4 a* C        }( F0 F4 a) c& }& `, `4 M! \9 [

& @& H! U. {0 R1 V( `+ O9 W        canvas {9 f7 a9 T) O6 F1 f. [
            width: 100%;
  i  t3 v  n# a% t9 t5 z+ I% s            height: 100%;, n% V, y9 h$ H" r4 W% o1 b$ d( K
        }
0 U) ^" E$ J, N6 Q0 |3 L0 Q# r  o* T
        h1 {( l# c( A* r+ j
            color: aqua;; r# x8 m- J. N4 m0 J' N
        }- Q1 w) Z' l/ n
    </style>* Q( X4 B- J5 T5 [
</head>8 y) `) F& o* v' c& M1 e. I

  w+ F8 _0 }  J& W: Z- w8 H# T<body>
3 I. s% s8 T8 N0 O- z <script src="js/three.js"></script>7 `6 z9 z% Q# V( ^! z) E* Y
    <script src="js/OrbitControls.js"></script>/ x2 j  d, W1 {- c1 h+ ?3 x
    <script src="myjs.js"></script>
) Q& e' a7 e1 y  
7 y8 I( h8 y8 q5 U$ c# T7 c. v, M7 R  X. ^, w

* R* W+ H) M* }, W1 Y* u# Z0 p: z$ @/ y$ {+ q: Q" b7 y5 b
</body>( {8 v4 Y3 b: w# h

: l0 C: K  Z% U6 u# v</html>[/mw_shl_code]
2 ~. P/ E2 p$ j
) E! E; B; o  `3 J0 `效果点击这里:! |8 ~1 I# w  ~, M& |
1 I$ j) d+ H, m" a; d9 C. A! N9 f
http://plmhome.com/doteam/lesson1.html8 A/ M5 P% }( W8 P+ s2 k- Y
  v/ J5 K3 i) O; H' m
: ]& N: \% H7 ]( t3 x) L: G
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了