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
/ C6 p( s" {% ^6 Z9 h' x8 A! X

" {/ K/ q* g1 ]& `6 V废话不多说,官网自己百度下, threejs.org ,入门很简单。
; v" b: v* B) f0 Q0 O! l$ \- D6 Y, X6 k
创建的javascript脚本如下
) m, B" [  T! F
. @( }5 y" N% J GIF.gif
2 O, @  @7 j. d* |! K$ D[mw_shl_code=javascript,true]8 u, E4 |, z* P4 i6 p; q
var scene = new THREE.Scene();
5 y7 ]0 G9 U4 D+ Cvar camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);) }8 u* H  Y, Z+ P
var renderer = new THREE.WebGLRenderer();5 L+ p/ ]) i5 a$ ^
renderer.setSize(window.innerWidth, window.innerHeight);3 g. S% G+ G7 D' S7 @
document.body.appendChild(renderer.domElement);1 h) d' f! F  _! k) x

$ I* R, x5 Z2 H: Y/ R. w// Refresh Issue
. e' Q$ v3 j8 N( H) pwindow.addEventListener('resize', function () {+ r; q5 A( H/ A8 Y5 k; m
    var width = this.window.innerWidth;
# g* f- S) Y; k! T; T) b( x, i    var height = this.window.innerHeight;9 l( Q. Z; _- \$ s0 U/ s
    render.setSize(width, height);8 Z7 p  _! n# \
    camera.aspect = width / height;8 J" u: h$ Z6 ~6 @5 g6 Q
    camera.updateProjectionMatrix();1 L8 v5 d( O' O: f
})
! T) a$ c0 B. q- V4 z/ D6 o# Y
7 o7 k, ~  I% v1 W0 \) c$ |& v9 \//orbit contorls6 x2 T3 Y: `- T! J
controls = new THREE.OrbiTControls(camera,renderer.domElement);
  S1 ^# S5 Y- |% x- G$ w4 j" q. Y
1 g& i. Q( o# y' T- w; q//create the shape" z" {; M. ^& Y/ _9 `% {6 Y, V
var geometry = new THREE.TorusGeometry(2, 1, 16, 100);+ O! B& P# ~/ `) V: K0 ?# D
//create  a meterial3 v7 O6 ^. E( M/ v0 V2 \( A
var material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });
& u, [, p4 C8 `7 Q- |//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];" A2 g; Z7 Y/ U4 l1 J2 b5 j
//var material = new THREE.MeshFaceMaterial(myMaterial);
6 U8 H6 Q/ m# h, Y- [7 q, S0 h$ n$ [6 v/ ?
var cube = new THREE.Mesh(geometry, material);
7 {9 D5 f1 q& O6 bscene.add(cube);- ^3 ^" O* I9 w3 N5 |+ U* c  F
camera.position.z = 5;2 e8 x5 R0 W" Q* M+ u

9 W" C9 \' L, Q9 B  o! f/ D* c4 S1 j9 Z/ V+ M

2 z$ v" k  b: h9 u8 ?7 C- }$ z2 U

/ S+ h) ?, c" {- c3 Y//rotate 6 o4 f, e- M  P6 f. ~/ l; w
var update = function () {
" F5 j& u% ~7 `' G' S  e5 a) C    cube.rotation.x += .01;- i; i& O) @! N4 |' d) \
    cube.rotation.y += .02;) Y# l7 b  y0 x# [+ B
    cube.rotation.z += .02;
/ K& L) S6 j2 v- c* G4 c}
: d/ Q* r/ S! s* Y* r
7 n8 E2 {+ `; Q3 e' q8 z+ x! Bvar render = function () {
( k1 q. j- T. P$ ]$ Z5 O9 U    renderer.render(scene, camera);
/ A. F% c; @5 [6 K}
# k! ^9 F# w  L! ~  e) f( w. r$ D+ J: ~

0 Y$ J1 t% K6 p4 ]. v2 ?5 u/ T
8 o5 u' P' }# d4 J  mvar Gameloop = function () {
/ |& R! _7 n# q( X: J/ @% o    requestAnimationFrame(Gameloop);
- m: |( V/ w+ S5 t    update();
3 K7 m! R$ Z* F; b8 i    render();
* u( q# j% a% i# J( S}% E: o3 p* r  H" K1 S8 H

: z4 T9 j4 B8 K( I* LGameloop();* ?+ S1 W# `( J# j+ [
[/mw_shl_code]! h5 j* n5 D) J0 f7 N

( d3 Y1 |6 r" q. I! S, {  P3 _! i) y* [: B: K7 @2 d  R  G3 f
引入争取的html,9 y: x2 d% Y5 Q: P5 t
& X" H/ o3 t9 b3 V1 m! F
[mw_shl_code=html,true]<!DOCTYPE html>
6 w! X4 t8 a7 F9 [9 @! A5 o4 U2 q<html>8 l: S/ }% O% g; F6 {/ J

  o7 F% C- g$ r9 R2 r: M6 K<head>
+ u6 X1 J( u  ?) F    <title>hello ThreeJS</title>$ S, d6 X2 J! d
    <style>; `- b1 s8 m" B* K: W
        body {
/ R5 i7 [3 P( D1 k( {3 b2 F) X" l  ]            margin: 0;9 l; \' [# \4 b5 K7 Y
        }1 u1 T8 H& Y7 I6 p. C6 Q2 M- ?

/ i' S8 D) K* ~( ~; ~: E        canvas {/ }! w) E0 H# _2 w. u
            width: 100%;
- x. |; I, B* E" W* w* b  A9 Y$ a. i            height: 100%;  l! x- ?9 g) P% S; G1 I: @3 |
        }3 m6 u" f$ Q7 [( }, J
: U7 y5 }% R! o  e- O4 f2 V
        h1 {
1 S$ S# N3 E- h            color: aqua;
6 v! b# S( U0 Q1 g2 N' [        }- ]& p' X- v3 W9 a8 r6 P
    </style>: w+ z  Z6 O7 l4 w5 _/ c
</head>
; ]5 g; U6 d9 g  M* x. p6 j: Q( T3 w  w/ j0 m
<body>" V# F' i. \; D! F/ y$ y! T, X
<script src="js/three.js"></script>
8 a" `0 b' R- P( ?    <script src="js/OrbitControls.js"></script>3 m0 L( f6 V9 W3 v1 G4 k
    <script src="myjs.js"></script>) e& _  T) Q$ d# R6 o  w
  ' v. T& H* G7 c" p
- j+ O2 c4 K; g2 o9 v( y

1 u% V* c( `7 e, M! O2 M  L, [8 b) R
" C  u/ B2 G/ q2 a4 Y- A</body>
2 p3 D. X! e+ r: }$ t- k! B. u6 |9 B
</html>[/mw_shl_code]
# A( Q) B2 y+ C& i9 D4 Q  {# @5 t% a) J
效果点击这里:# Z; _+ ]! L9 F5 R, n3 e

+ F6 A, k- c* Ihttp://plmhome.com/doteam/lesson1.html
* w% t$ H; l! S/ h' ]+ V+ A5 {* p9 o# M
; u# l: i5 d; Q" [' J' I) p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了