Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
3f6a5e66
T
three.js
项目概览
Ablesons
/
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,发现更多精彩内容 >>
提交
3f6a5e66
编写于
7月 19, 2011
作者:
Z
zz85
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
right side faces for extrusion
上级
41e1ff01
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
74 addition
and
60 deletion
+74
-60
src/extras/geometries/Curve.js
src/extras/geometries/Curve.js
+0
-2
src/extras/geometries/ExtrudeGeometry.js
src/extras/geometries/ExtrudeGeometry.js
+45
-50
src/extras/geometries/Path.js
src/extras/geometries/Path.js
+24
-6
src/extras/geometries/Shape.js
src/extras/geometries/Shape.js
+5
-2
未找到文件。
src/extras/geometries/Curve.js
浏览文件 @
3f6a5e66
...
...
@@ -251,8 +251,6 @@ THREE.ArcCurve.prototype.getPoint = function ( t /* between 0 .. 1 */) {
}
THREE
.
Curve
.
Utils
=
{
tangentQuadraticBezier
:
function
(
t
,
p0
,
p1
,
p2
)
{
return
2
*
(
1
-
t
)
*
(
p1
-
p0
)
+
2
*
t
*
(
p2
-
p1
)
;
...
...
src/extras/geometries/ExtrudeGeometry.js
浏览文件 @
3f6a5e66
...
...
@@ -33,16 +33,14 @@ THREE.ExtrudeGeometry = function( shape, options ) {
var
vertices
=
shape
.
getSpacedPoints
();
// getPoints | getSpacedPoints() you can get variable divisions by dividing by total lenght
var
reverse
=
THREE
.
FontUtils
.
Triangulate
.
area
(
vertices
)
>
0
;
if
(
reverse
)
{
//faces = THREE.FontUtils.Triangulate( vertices.reverse(), true );
vertices
=
vertices
.
reverse
();
reverse
=
false
;
}
var
holes
=
shape
.
getHoles
();
//var faces = THREE.Shape.Utils.triangulateShape(vertices, holes);
var
faces
=
THREE
.
Shape
.
Utils
.
triangulate2
(
vertices
,
holes
);
var
faces
=
THREE
.
Shape
.
Utils
.
triangulateShape
(
vertices
,
holes
);
//
var faces = THREE.Shape.Utils.triangulate2(vertices, holes);
//console.log(faces);
...
...
@@ -50,8 +48,9 @@ THREE.ExtrudeGeometry = function( shape, options ) {
var
contour
=
vertices
;
// vertices has all points but contour has only points of circumference
var
ahole
;
for
(
var
h
in
holes
)
{
var
ahole
,
h
,
hl
;
for
(
h
=
0
,
hl
=
holes
.
length
;
h
<
hl
;
h
++
)
{
ahole
=
holes
[
h
];
vertices
=
vertices
.
concat
(
ahole
);
}
...
...
@@ -70,7 +69,10 @@ THREE.ExtrudeGeometry = function( shape, options ) {
var
i
,
vert
,
vlen
=
vertices
.
length
,
face
,
flen
=
faces
.
length
,
bevelPt
,
blen
=
bevelPoints
.
length
;
cont
,
clen
=
contour
.
length
,
hol
,
hlen
;
var
bevelPt
,
blen
=
bevelPoints
.
length
;
// Back facing vertices
...
...
@@ -153,69 +155,62 @@ THREE.ExtrudeGeometry = function( shape, options ) {
}
var
lastV
;
var
tmpPt
;
var
j
,
k
,
l
,
m
;
var
layeroffset
=
0
;
// Sides faces
sidewalls
(
contour
);
layeroffset
+=
contour
.
length
;
for
(
h
=
0
,
hl
=
holes
.
length
;
h
<
hl
;
h
++
)
{
ahole
=
holes
[
h
];
sidewalls
(
ahole
);
layeroffset
+=
ahole
.
length
;
}
function
sidewalls
(
contour
)
{
i
=
contour
.
length
;
//contour.push( contour[ 0 ] ); // in order not to check for boundary indices every time
i
=
contour
.
length
;
while
(
--
i
>=
0
)
{
lastV
=
contour
[
i
];
// TO OPTIMISE. Reduce this step of checking vertices.
/*
for ( j = 0; j < vlen; j++ ) {
if ( vertices[ j ].equals( contour[ i ] ) ) break;
}
for ( k = 0; k < vlen; k++ ) {
while
(
--
i
>=
0
)
{
if ( vertices[ k ].equals( contour[ i - 1 ] ) ) break
;
tmpPt
=
contour
[
i
]
;
}
*/
//TOREMOVE
//console.log('a', i,j, i-1, k);
j
=
i
;
//if (j==vertices.length) j = 0
;
//TOREMOVE
//console.log('a', i,j, i-1, k)
;
k
=
i
-
1
;
j
=
i
;
k
=
i
-
1
;
if
(
k
<
0
)
k
=
contour
.
length
-
1
;
if
(
k
<
0
)
k
=
contour
.
length
-
1
;
//console.log('b', i,j, i-1, k,vertices.length);
//console.log('b', i,j, i-1, k,vertices.length);
// Create faces for the z-sides of the text
// Create faces for the z-sides of the text
//f4( j, k, k + vlen, j + vlen );
//f4( j, k, k + vlen, j + vlen );
// Reverse
//f4( k, j, j + vlen, k + vlen)
;
var
s
=
0
;
//
for
(
;
s
<
steps
;
s
++
)
{
var
s
=
0
;
var
slen1
=
vlen
*
s
;
var
slen2
=
vlen
*
(
s
+
1
);
for
(
;
s
<
steps
;
s
++
)
{
f4
(
layeroffset
+
j
+
slen1
,
layeroffset
+
k
+
slen1
,
layeroffset
+
k
+
slen2
,
layeroffset
+
j
+
slen2
);
var
slen1
=
vlen
*
s
;
var
slen2
=
vlen
*
(
s
+
1
);
}
f4
(
j
+
slen1
,
k
+
slen1
,
k
+
slen2
,
j
+
slen2
);
//
}
//
}
...
...
@@ -233,7 +228,7 @@ THREE.ExtrudeGeometry = function( shape, options ) {
function
f3
(
a
,
b
,
c
)
{
if
(
reverse
)
{
if
(
reverse
)
{
// Can be removed
scope
.
faces
.
push
(
new
THREE
.
Face3
(
c
,
b
,
a
)
);
...
...
src/extras/geometries/Path.js
浏览文件 @
3f6a5e66
...
...
@@ -129,7 +129,7 @@ THREE.Path.prototype.arc = function(aX, aY, aRadius,
var
curve
=
new
THREE
.
ArcCurve
(
aX
,
aY
,
aRadius
,
aStartAngle
,
aEndAngle
,
aClockwise
);
this
.
curves
.
push
(
curve
);
console
.
log
(
'
arc
'
,
args
);
this
.
actions
.
push
(
{
action
:
THREE
.
PathActions
.
ARC
,
args
:
args
}
);
...
...
@@ -219,8 +219,6 @@ THREE.Path.prototype.getPoints = function( divisions ) {
for
(
j
=
1
;
j
<=
divisions
;
j
++
)
{
// TODO use LOD for divisions
t
=
j
/
divisions
;
tx
=
THREE
.
FontUtils
.
b2
(
t
,
cpx0
,
cpx1
,
cpx
);
...
...
@@ -295,22 +293,42 @@ THREE.Path.prototype.getPoints = function( divisions ) {
laste
=
this
.
actions
[
i
-
1
].
args
;
var
aX
=
args
[
0
],
aY
=
args
[
1
],
aRadius
=
args
[
2
],
aStartAngle
=
args
[
3
],
aEndAngle
=
args
[
4
],
aClockwise
=
args
[
5
];
aStartAngle
=
args
[
3
],
aEndAngle
=
args
[
4
],
aClockwise
=
!!
args
[
5
];
var
lastx
=
laste
[
laste
.
length
-
2
],
lasty
=
laste
[
laste
.
length
-
1
]
;
if
(
laste
.
length
==
0
)
{
lastx
=
lasty
=
0
;
}
console
.
log
(
args
,
lastx
,
lasty
);
var
deltaAngle
=
aEndAngle
-
aStartAngle
;
var
angle
;
for
(
j
=
1
;
j
<=
divisions
*
2
;
j
++
)
{
angle
=
aStartAngle
+
j
/
divisions
/
2
*
deltaAngle
;
var
tdivisions
=
divisions
*
2
;
var
t
;
for
(
j
=
0
;
j
<
tdivisions
;
j
++
)
{
t
=
j
/
tdivisions
;
//if (aClockwise) {
// t = 1 - t;
// }
angle
=
aStartAngle
+
t
*
deltaAngle
;
tx
=
lastx
+
aX
+
aRadius
*
Math
.
cos
(
angle
);
ty
=
lasty
+
aY
+
aRadius
*
Math
.
sin
(
angle
);
console
.
log
(
'
t
'
,
t
,
'
angle
'
,
angle
,
'
tx
'
,
tx
,
'
ty
'
,
ty
);
points
.
push
(
new
THREE
.
Vector2
(
tx
,
ty
)
);
}
console
.
log
(
points
);
break
;
...
...
src/extras/geometries/Shape.js
浏览文件 @
3f6a5e66
...
...
@@ -27,13 +27,16 @@ THREE.Shape.prototype.extrude = function( options ) {
};
/* Return array of holes' getPoints() */
THREE
.
Shape
.
prototype
.
getHoles
=
function
()
{
var
holesPts
=
[];
var
i
=
0
,
il
=
this
.
holes
.
length
;
for
(;
i
<
il
;
i
++
)
{
holesPts
[
i
]
=
this
.
holes
[
i
].
getSpacedPoints
();
holesPts
[
i
]
=
this
.
holes
[
i
].
getSpacedPoints
();
//getSpacedPoints getPoints
}
return
holesPts
;
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录