Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
2c8c1b8a
T
three.js
项目概览
车家大少爷
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2c8c1b8a
编写于
3月 20, 2013
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated builds.
上级
ed53dfc1
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
4 addition
and
1 deletion
+4
-1
build/three.js
build/three.js
+3
-0
build/three.min.js
build/three.min.js
+1
-1
未找到文件。
build/three.js
浏览文件 @
2c8c1b8a
...
...
@@ -33073,6 +33073,9 @@ THREE.PolyhedronGeometry.prototype = Object.create( THREE.Geometry.prototype );
THREE.IcosahedronGeometry = function ( radius, detail ) {
this.radius = radius;
this.detail = detail;
var t = ( 1 + Math.sqrt( 5 ) ) / 2;
var vertices = [
...
...
build/three.min.js
浏览文件 @
2c8c1b8a
...
...
@@ -632,7 +632,7 @@ this.computeVertexNormals()};THREE.TubeGeometry.prototype=Object.create(THREE.Ge
THREE
.
TubeGeometry
.
FrenetFrames
=
function
(
a
,
b
,
c
){
new
THREE
.
Vector3
;
var
d
=
new
THREE
.
Vector3
;
new
THREE
.
Vector3
;
var
e
=
[],
f
=
[],
g
=
[],
h
=
new
THREE
.
Vector3
,
i
=
new
THREE
.
Matrix4
,
b
=
b
+
1
,
k
,
m
,
p
;
this
.
tangents
=
e
;
this
.
normals
=
f
;
this
.
binormals
=
g
;
for
(
k
=
0
;
k
<
b
;
k
++
)
m
=
k
/
(
b
-
1
),
e
[
k
]
=
a
.
getTangentAt
(
m
),
e
[
k
].
normalize
();
f
[
0
]
=
new
THREE
.
Vector3
;
g
[
0
]
=
new
THREE
.
Vector3
;
a
=
Number
.
MAX_VALUE
;
k
=
Math
.
abs
(
e
[
0
].
x
);
m
=
Math
.
abs
(
e
[
0
].
y
);
p
=
Math
.
abs
(
e
[
0
].
z
);
k
<=
a
&&
(
a
=
k
,
d
.
set
(
1
,
0
,
0
));
m
<=
a
&&
(
a
=
m
,
d
.
set
(
0
,
1
,
0
));
p
<=
a
&&
d
.
set
(
0
,
0
,
1
);
h
.
crossVectors
(
e
[
0
],
d
).
normalize
();
f
[
0
].
crossVectors
(
e
[
0
],
h
);
g
[
0
].
crossVectors
(
e
[
0
],
f
[
0
]);
for
(
k
=
1
;
k
<
b
;
k
++
)
f
[
k
]
=
f
[
k
-
1
].
clone
(),
g
[
k
]
=
g
[
k
-
1
].
clone
(),
h
.
crossVectors
(
e
[
k
-
1
],
e
[
k
]),
1
E
-
4
<
h
.
length
()
&&
(
h
.
normalize
(),
d
=
Math
.
acos
(
e
[
k
-
1
].
dot
(
e
[
k
])),
f
[
k
].
applyMatrix4
(
i
.
makeRotationAxis
(
h
,
d
))),
g
[
k
].
crossVectors
(
e
[
k
],
f
[
k
]);
if
(
c
){
d
=
Math
.
acos
(
f
[
0
].
dot
(
f
[
b
-
1
]));
d
/=
b
-
1
;
0
<
e
[
0
].
dot
(
h
.
crossVectors
(
f
[
0
],
f
[
b
-
1
]))
&&
(
d
=-
d
);
for
(
k
=
1
;
k
<
b
;
k
++
)
f
[
k
].
applyMatrix4
(
i
.
makeRotationAxis
(
e
[
k
],
d
*
k
)),
g
[
k
].
crossVectors
(
e
[
k
],
f
[
k
])}};
THREE
.
PolyhedronGeometry
=
function
(
a
,
b
,
c
,
d
){
function
e
(
a
){
var
b
=
a
.
normalize
().
clone
();
b
.
index
=
i
.
vertices
.
push
(
b
)
-
1
;
var
c
=
Math
.
atan2
(
a
.
z
,
-
a
.
x
)
/
2
/
Math
.
PI
+
0.5
,
a
=
Math
.
atan2
(
-
a
.
y
,
Math
.
sqrt
(
a
.
x
*
a
.
x
+
a
.
z
*
a
.
z
))
/
Math
.
PI
+
0.5
;
b
.
uv
=
new
THREE
.
Vector2
(
c
,
1
-
a
);
return
b
}
function
f
(
a
,
b
,
c
,
d
){
1
>
d
?(
d
=
new
THREE
.
Face3
(
a
.
index
,
b
.
index
,
c
.
index
,[
a
.
clone
(),
b
.
clone
(),
c
.
clone
()]),
d
.
centroid
.
add
(
a
).
add
(
b
).
add
(
c
).
divideScalar
(
3
),
d
.
normal
=
d
.
centroid
.
clone
().
normalize
(),
i
.
faces
.
push
(
d
),
d
=
Math
.
atan2
(
d
.
centroid
.
z
,
-
d
.
centroid
.
x
),
i
.
faceVertexUvs
[
0
].
push
([
h
(
a
.
uv
,
a
,
d
),
h
(
b
.
uv
,
b
,
d
),
h
(
c
.
uv
,
c
,
d
)])):(
d
-=
1
,
f
(
a
,
g
(
a
,
b
),
g
(
a
,
c
),
d
),
f
(
g
(
a
,
b
),
b
,
g
(
b
,
c
),
d
),
f
(
g
(
a
,
c
),
g
(
b
,
c
),
c
,
d
),
f
(
g
(
a
,
b
),
g
(
b
,
c
),
g
(
a
,
c
),
d
))}
function
g
(
a
,
b
){
p
[
a
.
index
]
||
(
p
[
a
.
index
]
=
[]);
p
[
b
.
index
]
||
(
p
[
b
.
index
]
=
[]);
var
c
=
p
[
a
.
index
][
b
.
index
];
void
0
===
c
&&
(
p
[
a
.
index
][
b
.
index
]
=
p
[
b
.
index
][
a
.
index
]
=
c
=
e
((
new
THREE
.
Vector3
).
addVectors
(
a
,
b
).
divideScalar
(
2
)));
return
c
}
function
h
(
a
,
b
,
c
){
0
>
c
&&
1
===
a
.
x
&&
(
a
=
new
THREE
.
Vector2
(
a
.
x
-
1
,
a
.
y
));
0
===
b
.
x
&&
0
===
b
.
z
&&
(
a
=
new
THREE
.
Vector2
(
c
/
2
/
Math
.
PI
+
0.5
,
a
.
y
));
return
a
}
THREE
.
Geometry
.
call
(
this
);
for
(
var
c
=
c
||
1
,
d
=
d
||
0
,
i
=
this
,
k
=
0
,
m
=
a
.
length
;
k
<
m
;
k
++
)
e
(
new
THREE
.
Vector3
(
a
[
k
][
0
],
a
[
k
][
1
],
a
[
k
][
2
]));
for
(
var
p
=
[],
a
=
this
.
vertices
,
k
=
0
,
m
=
b
.
length
;
k
<
m
;
k
++
)
f
(
a
[
b
[
k
][
0
]],
a
[
b
[
k
][
1
]],
a
[
b
[
k
][
2
]],
d
);
this
.
mergeVertices
();
k
=
0
;
for
(
m
=
this
.
vertices
.
length
;
k
<
m
;
k
++
)
this
.
vertices
[
k
].
multiplyScalar
(
c
);
this
.
computeCentroids
();
this
.
boundingSphere
=
new
THREE
.
Sphere
(
new
THREE
.
Vector3
,
c
)};
THREE
.
PolyhedronGeometry
.
prototype
=
Object
.
create
(
THREE
.
Geometry
.
prototype
);
THREE
.
IcosahedronGeometry
=
function
(
a
,
b
){
var
c
=
(
1
+
Math
.
sqrt
(
5
))
/
2
;
THREE
.
PolyhedronGeometry
.
call
(
this
,[[
-
1
,
c
,
0
],[
1
,
c
,
0
],[
-
1
,
-
c
,
0
],[
1
,
-
c
,
0
],[
0
,
-
1
,
c
],[
0
,
1
,
c
],[
0
,
-
1
,
-
c
],[
0
,
1
,
-
c
],[
c
,
0
,
-
1
],[
c
,
0
,
1
],[
-
c
,
0
,
-
1
],[
-
c
,
0
,
1
]],[[
0
,
11
,
5
],[
0
,
5
,
1
],[
0
,
1
,
7
],[
0
,
7
,
10
],[
0
,
10
,
11
],[
1
,
5
,
9
],[
5
,
11
,
4
],[
11
,
10
,
2
],[
10
,
7
,
6
],[
7
,
1
,
8
],[
3
,
9
,
4
],[
3
,
4
,
2
],[
3
,
2
,
6
],[
3
,
6
,
8
],[
3
,
8
,
9
],[
4
,
9
,
5
],[
2
,
4
,
11
],[
6
,
2
,
10
],[
8
,
6
,
7
],[
9
,
8
,
1
]],
a
,
b
)};
THREE
.
IcosahedronGeometry
.
prototype
=
Object
.
create
(
THREE
.
Geometry
.
prototype
);
THREE
.
OctahedronGeometry
=
function
(
a
,
b
){
THREE
.
PolyhedronGeometry
.
call
(
this
,[[
1
,
0
,
0
],[
-
1
,
0
,
0
],[
0
,
1
,
0
],[
0
,
-
1
,
0
],[
0
,
0
,
1
],[
0
,
0
,
-
1
]],[[
0
,
2
,
4
],[
0
,
4
,
3
],[
0
,
3
,
5
],[
0
,
5
,
2
],[
1
,
2
,
5
],[
1
,
5
,
3
],[
1
,
3
,
4
],[
1
,
4
,
2
]],
a
,
b
)};
THREE
.
OctahedronGeometry
.
prototype
=
Object
.
create
(
THREE
.
Geometry
.
prototype
);
THREE
.
TetrahedronGeometry
=
function
(
a
,
b
){
THREE
.
PolyhedronGeometry
.
call
(
this
,[[
1
,
1
,
1
],[
-
1
,
-
1
,
1
],[
-
1
,
1
,
-
1
],[
1
,
-
1
,
-
1
]],[[
2
,
1
,
0
],[
0
,
3
,
2
],[
1
,
3
,
0
],[
2
,
3
,
1
]],
a
,
b
)};
THREE
.
TetrahedronGeometry
.
prototype
=
Object
.
create
(
THREE
.
Geometry
.
prototype
);
THREE
.
ParametricGeometry
=
function
(
a
,
b
,
c
,
d
){
THREE
.
Geometry
.
call
(
this
);
var
e
=
this
.
vertices
,
f
=
this
.
faces
,
g
=
this
.
faceVertexUvs
[
0
],
d
=
void
0
===
d
?
!
1
:
d
,
h
,
i
,
k
,
m
,
p
=
b
+
1
;
for
(
h
=
0
;
h
<=
c
;
h
++
){
m
=
h
/
c
;
for
(
i
=
0
;
i
<=
b
;
i
++
)
k
=
i
/
b
,
k
=
a
(
k
,
m
),
e
.
push
(
k
)}
var
l
,
s
,
r
,
n
;
for
(
h
=
0
;
h
<
c
;
h
++
)
for
(
i
=
0
;
i
<
b
;
i
++
)
a
=
h
*
p
+
i
,
e
=
h
*
p
+
i
+
1
,
m
=
(
h
+
1
)
*
p
+
i
,
k
=
(
h
+
1
)
*
p
+
i
+
1
,
l
=
new
THREE
.
Vector2
(
i
/
b
,
h
/
c
),
s
=
new
THREE
.
Vector2
((
i
+
1
)
/
b
,
h
/
c
),
r
=
new
THREE
.
Vector2
(
i
/
b
,(
h
+
1
)
/
c
),
n
=
new
THREE
.
Vector2
((
i
+
1
)
/
b
,(
h
+
1
)
/
c
),
d
?(
f
.
push
(
new
THREE
.
Face3
(
a
,
e
,
m
)),
f
.
push
(
new
THREE
.
Face3
(
e
,
for
(
var
c
=
c
||
1
,
d
=
d
||
0
,
i
=
this
,
k
=
0
,
m
=
a
.
length
;
k
<
m
;
k
++
)
e
(
new
THREE
.
Vector3
(
a
[
k
][
0
],
a
[
k
][
1
],
a
[
k
][
2
]));
for
(
var
p
=
[],
a
=
this
.
vertices
,
k
=
0
,
m
=
b
.
length
;
k
<
m
;
k
++
)
f
(
a
[
b
[
k
][
0
]],
a
[
b
[
k
][
1
]],
a
[
b
[
k
][
2
]],
d
);
this
.
mergeVertices
();
k
=
0
;
for
(
m
=
this
.
vertices
.
length
;
k
<
m
;
k
++
)
this
.
vertices
[
k
].
multiplyScalar
(
c
);
this
.
computeCentroids
();
this
.
boundingSphere
=
new
THREE
.
Sphere
(
new
THREE
.
Vector3
,
c
)};
THREE
.
PolyhedronGeometry
.
prototype
=
Object
.
create
(
THREE
.
Geometry
.
prototype
);
THREE
.
IcosahedronGeometry
=
function
(
a
,
b
){
this
.
radius
=
a
;
this
.
detail
=
b
;
var
c
=
(
1
+
Math
.
sqrt
(
5
))
/
2
;
THREE
.
PolyhedronGeometry
.
call
(
this
,[[
-
1
,
c
,
0
],[
1
,
c
,
0
],[
-
1
,
-
c
,
0
],[
1
,
-
c
,
0
],[
0
,
-
1
,
c
],[
0
,
1
,
c
],[
0
,
-
1
,
-
c
],[
0
,
1
,
-
c
],[
c
,
0
,
-
1
],[
c
,
0
,
1
],[
-
c
,
0
,
-
1
],[
-
c
,
0
,
1
]],[[
0
,
11
,
5
],[
0
,
5
,
1
],[
0
,
1
,
7
],[
0
,
7
,
10
],[
0
,
10
,
11
],[
1
,
5
,
9
],[
5
,
11
,
4
],[
11
,
10
,
2
],[
10
,
7
,
6
],[
7
,
1
,
8
],[
3
,
9
,
4
],[
3
,
4
,
2
],[
3
,
2
,
6
],[
3
,
6
,
8
],[
3
,
8
,
9
],[
4
,
9
,
5
],[
2
,
4
,
11
],[
6
,
2
,
10
],[
8
,
6
,
7
],[
9
,
8
,
1
]],
a
,
b
)};
THREE
.
IcosahedronGeometry
.
prototype
=
Object
.
create
(
THREE
.
Geometry
.
prototype
);
THREE
.
OctahedronGeometry
=
function
(
a
,
b
){
THREE
.
PolyhedronGeometry
.
call
(
this
,[[
1
,
0
,
0
],[
-
1
,
0
,
0
],[
0
,
1
,
0
],[
0
,
-
1
,
0
],[
0
,
0
,
1
],[
0
,
0
,
-
1
]],[[
0
,
2
,
4
],[
0
,
4
,
3
],[
0
,
3
,
5
],[
0
,
5
,
2
],[
1
,
2
,
5
],[
1
,
5
,
3
],[
1
,
3
,
4
],[
1
,
4
,
2
]],
a
,
b
)};
THREE
.
OctahedronGeometry
.
prototype
=
Object
.
create
(
THREE
.
Geometry
.
prototype
);
THREE
.
TetrahedronGeometry
=
function
(
a
,
b
){
THREE
.
PolyhedronGeometry
.
call
(
this
,[[
1
,
1
,
1
],[
-
1
,
-
1
,
1
],[
-
1
,
1
,
-
1
],[
1
,
-
1
,
-
1
]],[[
2
,
1
,
0
],[
0
,
3
,
2
],[
1
,
3
,
0
],[
2
,
3
,
1
]],
a
,
b
)};
THREE
.
TetrahedronGeometry
.
prototype
=
Object
.
create
(
THREE
.
Geometry
.
prototype
);
THREE
.
ParametricGeometry
=
function
(
a
,
b
,
c
,
d
){
THREE
.
Geometry
.
call
(
this
);
var
e
=
this
.
vertices
,
f
=
this
.
faces
,
g
=
this
.
faceVertexUvs
[
0
],
d
=
void
0
===
d
?
!
1
:
d
,
h
,
i
,
k
,
m
,
p
=
b
+
1
;
for
(
h
=
0
;
h
<=
c
;
h
++
){
m
=
h
/
c
;
for
(
i
=
0
;
i
<=
b
;
i
++
)
k
=
i
/
b
,
k
=
a
(
k
,
m
),
e
.
push
(
k
)}
var
l
,
s
,
r
,
n
;
for
(
h
=
0
;
h
<
c
;
h
++
)
for
(
i
=
0
;
i
<
b
;
i
++
)
a
=
h
*
p
+
i
,
e
=
h
*
p
+
i
+
1
,
m
=
(
h
+
1
)
*
p
+
i
,
k
=
(
h
+
1
)
*
p
+
i
+
1
,
l
=
new
THREE
.
Vector2
(
i
/
b
,
h
/
c
),
s
=
new
THREE
.
Vector2
((
i
+
1
)
/
b
,
h
/
c
),
r
=
new
THREE
.
Vector2
(
i
/
b
,(
h
+
1
)
/
c
),
n
=
new
THREE
.
Vector2
((
i
+
1
)
/
b
,(
h
+
1
)
/
c
),
d
?(
f
.
push
(
new
THREE
.
Face3
(
a
,
e
,
m
)),
f
.
push
(
new
THREE
.
Face3
(
e
,
k
,
m
)),
g
.
push
([
l
,
s
,
r
]),
g
.
push
([
s
,
n
,
r
])):(
f
.
push
(
new
THREE
.
Face4
(
a
,
e
,
k
,
m
)),
g
.
push
([
l
,
s
,
n
,
r
]));
this
.
computeCentroids
();
this
.
computeFaceNormals
();
this
.
computeVertexNormals
()};
THREE
.
ParametricGeometry
.
prototype
=
Object
.
create
(
THREE
.
Geometry
.
prototype
);
THREE
.
ConvexGeometry
=
function
(
a
){
function
b
(
a
){
var
b
=
a
.
length
();
return
new
THREE
.
Vector2
(
a
.
x
/
b
,
a
.
y
/
b
)}
THREE
.
Geometry
.
call
(
this
);
for
(
var
c
=
[[
0
,
1
,
2
],[
0
,
2
,
1
]],
d
=
3
;
d
<
a
.
length
;
d
++
){
var
e
=
d
,
f
=
a
[
e
].
clone
(),
g
=
f
.
length
();
f
.
x
+=
g
*
2
E
-
6
*
(
Math
.
random
()
-
0.5
);
f
.
y
+=
g
*
2
E
-
6
*
(
Math
.
random
()
-
0.5
);
f
.
z
+=
g
*
2
E
-
6
*
(
Math
.
random
()
-
0.5
);
for
(
var
g
=
[],
h
=
0
;
h
<
c
.
length
;){
var
i
=
c
[
h
],
k
=
f
,
m
=
a
[
i
[
0
]],
p
;
p
=
m
;
var
l
=
a
[
i
[
1
]],
s
=
a
[
i
[
2
]],
r
=
new
THREE
.
Vector3
,
n
=
new
THREE
.
Vector3
;
r
.
subVectors
(
s
,
l
);
n
.
subVectors
(
p
,
l
);
r
.
cross
(
n
);
r
.
normalize
();
p
=
r
;
m
=
p
.
dot
(
m
);
if
(
p
.
dot
(
k
)
>=
m
){
for
(
k
=
0
;
3
>
k
;
k
++
){
m
=
[
i
[
k
],
i
[(
k
+
1
)
%
3
]];
p
=!
0
;
for
(
l
=
0
;
l
<
g
.
length
;
l
++
)
if
(
g
[
l
][
0
]
===
m
[
1
]
&&
g
[
l
][
1
]
===
m
[
0
]){
g
[
l
]
=
g
[
g
.
length
-
1
];
g
.
pop
();
p
=!
1
;
break
}
p
&&
g
.
push
(
m
)}
c
[
h
]
=
c
[
c
.
length
-
1
];
c
.
pop
()}
else
h
++
}
for
(
l
=
0
;
l
<
g
.
length
;
l
++
)
c
.
push
([
g
[
l
][
0
],
g
[
l
][
1
],
e
])}
e
=
0
;
f
=
Array
(
a
.
length
);
for
(
d
=
0
;
d
<
c
.
length
;
d
++
){
g
=
c
[
d
];
for
(
h
=
0
;
3
>
h
;
h
++
)
void
0
===
f
[
g
[
h
]]
&&
(
f
[
g
[
h
]]
=
e
++
,
this
.
vertices
.
push
(
a
[
g
[
h
]])),
g
[
h
]
=
f
[
g
[
h
]]}
for
(
d
=
0
;
d
<
c
.
length
;
d
++
)
this
.
faces
.
push
(
new
THREE
.
Face3
(
c
[
d
][
0
],
c
[
d
][
1
],
c
[
d
][
2
]));
for
(
d
=
0
;
d
<
this
.
faces
.
length
;
d
++
)
g
=
this
.
faces
[
d
],
this
.
faceVertexUvs
[
0
].
push
([
b
(
this
.
vertices
[
g
.
a
]),
b
(
this
.
vertices
[
g
.
b
]),
b
(
this
.
vertices
[
g
.
c
])]);
this
.
computeCentroids
();
this
.
computeFaceNormals
();
this
.
computeVertexNormals
()};
THREE
.
ConvexGeometry
.
prototype
=
Object
.
create
(
THREE
.
Geometry
.
prototype
);
THREE
.
AxisHelper
=
function
(
a
){
var
b
=
new
THREE
.
Geometry
;
b
.
vertices
.
push
(
new
THREE
.
Vector3
,
new
THREE
.
Vector3
(
a
||
1
,
0
,
0
),
new
THREE
.
Vector3
,
new
THREE
.
Vector3
(
0
,
a
||
1
,
0
),
new
THREE
.
Vector3
,
new
THREE
.
Vector3
(
0
,
0
,
a
||
1
));
b
.
colors
.
push
(
new
THREE
.
Color
(
16711680
),
new
THREE
.
Color
(
16755200
),
new
THREE
.
Color
(
65280
),
new
THREE
.
Color
(
11206400
),
new
THREE
.
Color
(
255
),
new
THREE
.
Color
(
43775
));
a
=
new
THREE
.
LineBasicMaterial
({
vertexColors
:
THREE
.
VertexColors
});
THREE
.
Line
.
call
(
this
,
b
,
a
,
THREE
.
LinePieces
)};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录