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

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

[复制链接]

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

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

admin 楼主

2019-9-1 18:45:09

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

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

x

9 \  Y8 i1 R! M# V. `$ t8 p1 S
! f4 A9 Y4 U# o$ o8 V9 ?$ B废话不多说,官网自己百度下, threejs.org ,入门很简单。  X4 |7 G3 l+ W$ X5 F' a

) O  t2 S( [+ H7 a创建的javascript脚本如下! ~2 f( G1 m* B. p6 @) `
5 h! n. e# |4 T- [: }1 {8 Z
GIF.gif   H& E" m- F* V. P4 d
[mw_shl_code=javascript,true]2 m! M( _- D( O* m: S$ l
var scene = new THREE.Scene();
5 C3 g5 W# m/ {! h8 B) tvar camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
) h: }/ @5 H5 [4 r% kvar renderer = new THREE.WebGLRenderer();5 D4 A- G  E* @  p" C
renderer.setSize(window.innerWidth, window.innerHeight);
# @" m+ P& h6 N! hdocument.body.appendChild(renderer.domElement);3 V$ s, M# I, A9 ?7 t8 {' K

2 `0 S! i9 E4 Y1 d2 G9 I// Refresh Issue
4 X% e4 y4 m/ ~5 L4 U; ]window.addEventListener('resize', function () {
0 {/ b0 Y* L! L( x% I    var width = this.window.innerWidth;  t% ~0 j  F7 w3 J" p$ P) n
    var height = this.window.innerHeight;* q; v; n9 a! c* h
    render.setSize(width, height);
$ w5 O# U; p8 z: v" Z    camera.aspect = width / height;
4 J0 ^+ P4 f& q  s7 C    camera.updateProjectionMatrix();: Z: s+ T( g! p: Y- ^6 w
})$ |7 r! h% {5 J( ]
3 L. i7 E* J! p% t2 [
//orbit contorls
( a( j: I( W( x+ @controls = new THREE.OrbiTControls(camera,renderer.domElement);
3 S/ b2 Z" H5 _$ u6 L
6 x( \5 Y) J* z- l0 ]  i//create the shape
' ^/ v: r! J  D$ |. avar geometry = new THREE.TorusGeometry(2, 1, 16, 100);! i7 W' _+ j  G2 Z8 `
//create  a meterial
: b6 P/ H$ R& d4 K* `7 Tvar material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });
$ Q/ R6 a5 ?. [/ \//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];
, K4 t- @2 E/ K! L//var material = new THREE.MeshFaceMaterial(myMaterial);9 T% G/ i5 z& E. h$ Q

( O' ^) P" Q. ^' ^var cube = new THREE.Mesh(geometry, material);
+ t2 J8 `* x5 W: Zscene.add(cube);
; f" J. j3 A8 N4 v$ {" r# scamera.position.z = 5;
# p9 ~, f7 `/ H# L! r; `( J- i! ^8 \: L
+ A6 @6 w9 I/ y$ V( d# g( X

' B' Q( B1 p1 w: J
+ {5 H# R: g# ]* R0 f. [! k' N) S0 K. j& D6 A9 ^# U
//rotate
) b- t( d4 n$ T9 ~1 \% _3 o; qvar update = function () {
! T+ x( W6 c( }3 B) }: E    cube.rotation.x += .01;
* j0 ?6 f/ o7 E2 _    cube.rotation.y += .02;6 C& `7 T# p3 r" [
    cube.rotation.z += .02;
$ V9 T6 K1 Y! Z7 N) e, g8 u}
% X9 V  L5 q; m) L/ y, n& O- _% c8 d  z
var render = function () {8 f9 `5 A+ l; z1 b! k  v
    renderer.render(scene, camera);
) J; |' y* L6 E6 t+ {}) d2 t1 G- h  J  d( a6 Y6 @

$ K. H6 A0 I: n& ?  i
. e6 v7 _) h* o; }' @
8 B: M# |9 R6 {0 d  H9 q. |var Gameloop = function () {& W& a/ ?6 f& \3 O9 s3 N4 [. {
    requestAnimationFrame(Gameloop);, B- ]/ s: }7 l3 ]: m  c
    update();9 E2 a  X4 W$ y( B- s  C, G  M" k7 v
    render();' X, _( N0 y0 \
}" ^0 W: G/ b3 Z! W0 Q; f1 F
+ @+ g) l; T* T, c
Gameloop();  h- I4 v, M) l- D7 I1 K
[/mw_shl_code]
! n3 w1 Z9 Z# T: C( m: G4 k2 b+ z7 P& A- j) J# z

: M( J8 p: I: Q4 f5 Z引入争取的html,6 ~3 [2 L( p; k$ O( j

' f: o( B" _( L' _2 e5 G+ `[mw_shl_code=html,true]<!DOCTYPE html>9 l. J) I: h% n" K' Z0 d  j
<html>7 c7 t4 i2 b! c1 e; a

/ }& x% v2 `- G+ M<head>% E% C* j' d' @2 `/ k! ?+ A* r0 f
    <title>hello ThreeJS</title>& b! ?, l5 g4 S$ v
    <style>
) w7 Z' O2 B0 ?        body {# h; H; A6 j1 D, X( u4 H
            margin: 0;9 |: E& x0 W3 \! R0 O
        }# M  r8 d7 b- z" F
. `* B4 W4 n' y: F/ Z8 {
        canvas {
  j7 f& [$ _  w$ D            width: 100%;
2 W, [% z! U/ R            height: 100%;1 Z" d- y$ I/ A. R( G6 q
        }
! B% T" o( \3 g% x9 K; ], w* K+ C, T0 E4 m" y. D$ f. f# b, ^; k% v! g
        h1 {
# g$ g9 P& s/ }: T4 F2 u+ [+ T9 K2 y2 i            color: aqua;( W; j+ f  W6 c! p; V. {
        }
: S+ n8 R' }, h) J+ a    </style>6 Y# M9 e# M8 |( @0 h( g4 \6 k
</head>
- m4 Y' G, `+ n) e. J" R3 c+ Q6 B
<body>. q6 b( C7 a7 x! V
<script src="js/three.js"></script>
) A* @$ N# ^0 h3 k. M- S) n    <script src="js/OrbitControls.js"></script>
' U9 r5 P8 S5 c2 |8 ?) C    <script src="myjs.js"></script>( N% o$ D9 c" p7 ?' L
  
! L" C8 ^5 W) `. q: S0 r, h' F. a0 h% T% T
, N  B9 a7 U+ V2 |

. o% s+ Y  v- h) N</body>3 x7 d- p+ p  _6 t' \: ^+ V
3 A  S6 K0 v, f: `
</html>[/mw_shl_code]6 ~$ p( w9 F: i) {+ \  B$ H

2 N% |4 |/ s- K1 l0 O效果点击这里:4 k6 o9 K  f2 g4 f9 |5 [
' b! u$ ?# y' K8 A0 t0 R
http://plmhome.com/doteam/lesson1.html
- [1 e; `2 T8 [. n+ K6 r/ X
! X) G; \9 n  J  W6 S0 O. M
5 _# p# B, d% M' W; w& ^, B
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了