Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
a4a11cc1
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,发现更多精彩内容 >>
提交
a4a11cc1
编写于
10月 20, 2019
作者:
W
WestLangley
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make path and shape methods chainable
上级
f7fecd87
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
113 addition
and
96 deletion
+113
-96
docs/api/en/extras/core/Path.html
docs/api/en/extras/core/Path.html
+10
-10
examples/webgl_geometry_shapes.html
examples/webgl_geometry_shapes.html
+71
-74
src/Three.Legacy.js
src/Three.Legacy.js
+1
-1
src/extras/core/Path.d.ts
src/extras/core/Path.d.ts
+11
-11
src/extras/core/Path.js
src/extras/core/Path.js
+20
-0
未找到文件。
docs/api/en/extras/core/Path.html
浏览文件 @
a4a11cc1
...
...
@@ -60,7 +60,7 @@
<h2>
Methods
</h2>
<p>
See the base [page:CurvePath] class for common methods.
</p>
<h3>
[method:
null
absarc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise] )
</h3>
<h3>
[method:
this
absarc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise] )
</h3>
<p>
x, y -- The absolute center of the arc.
<br
/>
radius -- The radius of the arc.
<br
/>
...
...
@@ -71,7 +71,7 @@
Adds an absolutely positioned [page:EllipseCurve EllipseCurve] to the path.
</p>
<h3>
[method:
null
absellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise], [param:Float rotation] )
</h3>
<h3>
[method:
this
absellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise], [param:Float rotation] )
</h3>
<p>
x, y -- The absolute center of the ellipse.
<br
/>
xRadius -- The radius of the ellipse in the x axis.
<br
/>
...
...
@@ -84,7 +84,7 @@
Adds an absolutely positioned [page:EllipseCurve EllipseCurve] to the path.
</p>
<h3>
[method:
null
arc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise] )
</h3>
<h3>
[method:
this
arc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise] )
</h3>
<p>
x, y -- The center of the arc offset from the last call.
<br
/>
radius -- The radius of the arc.
<br
/>
...
...
@@ -96,10 +96,10 @@
</p>
<h3>
[method:
null
bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )
</h3>
<h3>
[method:
this
bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )
</h3>
<p>
This creates a bezier curve from [page:.currentPoint] with (cp1X, cp1Y) and (cp2X, cp2Y) as control points and updates [page:.currentPoint] to x and y.
</p>
<h3>
[method:
null
ellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise], [param:Float rotation] )
</h3>
<h3>
[method:
this
ellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise], [param:Float rotation] )
</h3>
<p>
x, y -- The center of the ellipse offset from the last call.
<br
/>
xRadius -- The radius of the ellipse in the x axis.
<br
/>
...
...
@@ -112,18 +112,18 @@
Adds an [page:EllipseCurve EllipseCurve] to the path, positioned relative to [page:.currentPoint].
</p>
<h3>
[method:
null
lineTo]( [param:Float x], [param:Float y] )
</h3>
<h3>
[method:
this
lineTo]( [param:Float x], [param:Float y] )
</h3>
<p>
Connects a [page:LineCurve] from [page:.currentPoint] to x, y onto the path.
</p>
<h3>
[method:
null
moveTo]( [param:Float x], [param:Float y] )
</h3>
<h3>
[method:
this
moveTo]( [param:Float x], [param:Float y] )
</h3>
<p>
Move the [page:.currentPoint] to x, y.
</p>
<h3>
[method:
null
quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )
</h3>
<h3>
[method:
this
quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )
</h3>
<p>
Creates a quadratic curve from [page:.currentPoint] with cpX and cpY as control point and updates [page:.currentPoint] to x and y.
</p>
<h3>
[method:
null
setFromPoints]( [param:Array vector2s] )
</h3>
<h3>
[method:
this
setFromPoints]( [param:Array vector2s] )
</h3>
<p>
points -- array of [page:Vector2 Vector2s].
<br
/><br
/>
...
...
@@ -131,7 +131,7 @@
array as [page:LineCurve LineCurves].
</p>
<h3>
[method:
null
splineThru] ( [param:Array points] )
</h3>
<h3>
[method:
this
splineThru] ( [param:Array points] )
</h3>
<p>
points - An array of [page:Vector2 Vector2s]
<br
/><br
/>
...
...
examples/webgl_geometry_shapes.html
浏览文件 @
a4a11cc1
...
...
@@ -184,50 +184,49 @@
// Triangle
var
triangleShape
=
new
THREE
.
Shape
()
;
triangleShape
.
moveTo
(
80
,
20
);
triangleShape
.
lineTo
(
40
,
80
);
triangleShape
.
lineTo
(
120
,
80
);
triangleShape
.
lineTo
(
80
,
20
);
// close path
var
triangleShape
=
new
THREE
.
Shape
()
.
moveTo
(
80
,
20
)
.
lineTo
(
40
,
80
)
.
lineTo
(
120
,
80
)
.
lineTo
(
80
,
20
);
// close path
// Heart
var
x
=
0
,
y
=
0
;
var
heartShape
=
new
THREE
.
Shape
();
// From http://blog.burlock.org/html5/130-paths
heartShape
.
moveTo
(
x
+
25
,
y
+
25
);
heartShape
.
bezierCurveTo
(
x
+
25
,
y
+
25
,
x
+
20
,
y
,
x
,
y
);
heartShape
.
bezierCurveTo
(
x
-
30
,
y
,
x
-
30
,
y
+
35
,
x
-
30
,
y
+
35
);
heartShape
.
bezierCurveTo
(
x
-
30
,
y
+
55
,
x
-
10
,
y
+
77
,
x
+
25
,
y
+
95
);
heartShape
.
bezierCurveTo
(
x
+
60
,
y
+
77
,
x
+
80
,
y
+
55
,
x
+
80
,
y
+
35
);
heartShape
.
bezierCurveTo
(
x
+
80
,
y
+
35
,
x
+
80
,
y
,
x
+
50
,
y
);
heartShape
.
bezierCurveTo
(
x
+
35
,
y
,
x
+
25
,
y
+
25
,
x
+
25
,
y
+
25
);
var
heartShape
=
new
THREE
.
Shape
()
// From http://blog.burlock.org/html5/130-paths
.
moveTo
(
x
+
25
,
y
+
25
)
.
bezierCurveTo
(
x
+
25
,
y
+
25
,
x
+
20
,
y
,
x
,
y
)
.
bezierCurveTo
(
x
-
30
,
y
,
x
-
30
,
y
+
35
,
x
-
30
,
y
+
35
)
.
bezierCurveTo
(
x
-
30
,
y
+
55
,
x
-
10
,
y
+
77
,
x
+
25
,
y
+
95
)
.
bezierCurveTo
(
x
+
60
,
y
+
77
,
x
+
80
,
y
+
55
,
x
+
80
,
y
+
35
)
.
bezierCurveTo
(
x
+
80
,
y
+
35
,
x
+
80
,
y
,
x
+
50
,
y
)
.
bezierCurveTo
(
x
+
35
,
y
,
x
+
25
,
y
+
25
,
x
+
25
,
y
+
25
);
// Square
var
sqLength
=
80
;
var
squareShape
=
new
THREE
.
Shape
()
;
squareShape
.
moveTo
(
0
,
0
);
squareShape
.
lineTo
(
0
,
sqLength
);
squareShape
.
lineTo
(
sqLength
,
sqLength
);
squareShape
.
lineTo
(
sqLength
,
0
);
squareShape
.
lineTo
(
0
,
0
);
var
squareShape
=
new
THREE
.
Shape
()
.
moveTo
(
0
,
0
)
.
lineTo
(
0
,
sqLength
)
.
lineTo
(
sqLength
,
sqLength
)
.
lineTo
(
sqLength
,
0
)
.
lineTo
(
0
,
0
);
// Rectangle
var
rectLength
=
120
,
rectWidth
=
40
;
var
rectShape
=
new
THREE
.
Shape
()
;
rectShape
.
moveTo
(
0
,
0
);
rectShape
.
lineTo
(
0
,
rectWidth
);
rectShape
.
lineTo
(
rectLength
,
rectWidth
);
rectShape
.
lineTo
(
rectLength
,
0
);
rectShape
.
lineTo
(
0
,
0
);
var
rectShape
=
new
THREE
.
Shape
()
.
moveTo
(
0
,
0
)
.
lineTo
(
0
,
rectWidth
)
.
lineTo
(
rectLength
,
rectWidth
)
.
lineTo
(
rectLength
,
0
)
.
lineTo
(
0
,
0
);
// Rounded rectangle
...
...
@@ -251,76 +250,74 @@
// Track
var
trackShape
=
new
THREE
.
Shape
();
trackShape
.
moveTo
(
40
,
40
);
trackShape
.
lineTo
(
40
,
160
);
trackShape
.
absarc
(
60
,
160
,
20
,
Math
.
PI
,
0
,
true
);
trackShape
.
lineTo
(
80
,
40
);
trackShape
.
absarc
(
60
,
40
,
20
,
2
*
Math
.
PI
,
Math
.
PI
,
true
);
var
trackShape
=
new
THREE
.
Shape
()
.
moveTo
(
40
,
40
)
.
lineTo
(
40
,
160
)
.
absarc
(
60
,
160
,
20
,
Math
.
PI
,
0
,
true
)
.
lineTo
(
80
,
40
)
.
absarc
(
60
,
40
,
20
,
2
*
Math
.
PI
,
Math
.
PI
,
true
);
// Circle
var
circleRadius
=
40
;
var
circleShape
=
new
THREE
.
Shape
()
;
circleShape
.
moveTo
(
0
,
circleRadius
);
circleShape
.
quadraticCurveTo
(
circleRadius
,
circleRadius
,
circleRadius
,
0
);
circleShape
.
quadraticCurveTo
(
circleRadius
,
-
circleRadius
,
0
,
-
circleRadius
);
circleShape
.
quadraticCurveTo
(
-
circleRadius
,
-
circleRadius
,
-
circleRadius
,
0
);
circleShape
.
quadraticCurveTo
(
-
circleRadius
,
circleRadius
,
0
,
circleRadius
);
var
circleShape
=
new
THREE
.
Shape
()
.
moveTo
(
0
,
circleRadius
)
.
quadraticCurveTo
(
circleRadius
,
circleRadius
,
circleRadius
,
0
)
.
quadraticCurveTo
(
circleRadius
,
-
circleRadius
,
0
,
-
circleRadius
)
.
quadraticCurveTo
(
-
circleRadius
,
-
circleRadius
,
-
circleRadius
,
0
)
.
quadraticCurveTo
(
-
circleRadius
,
circleRadius
,
0
,
circleRadius
);
// Fish
var
x
=
y
=
0
;
var
fishShape
=
new
THREE
.
Shape
();
fishShape
.
moveTo
(
x
,
y
);
fishShape
.
quadraticCurveTo
(
x
+
50
,
y
-
80
,
x
+
90
,
y
-
10
);
fishShape
.
quadraticCurveTo
(
x
+
100
,
y
-
10
,
x
+
115
,
y
-
40
);
fishShape
.
quadraticCurveTo
(
x
+
115
,
y
,
x
+
115
,
y
+
40
);
fishShape
.
quadraticCurveTo
(
x
+
100
,
y
+
10
,
x
+
90
,
y
+
10
);
fishShape
.
quadraticCurveTo
(
x
+
50
,
y
+
80
,
x
,
y
);
var
fishShape
=
new
THREE
.
Shape
()
.
moveTo
(
x
,
y
)
.
quadraticCurveTo
(
x
+
50
,
y
-
80
,
x
+
90
,
y
-
10
)
.
quadraticCurveTo
(
x
+
100
,
y
-
10
,
x
+
115
,
y
-
40
)
.
quadraticCurveTo
(
x
+
115
,
y
,
x
+
115
,
y
+
40
)
.
quadraticCurveTo
(
x
+
100
,
y
+
10
,
x
+
90
,
y
+
10
)
.
quadraticCurveTo
(
x
+
50
,
y
+
80
,
x
,
y
);
// Arc circle
var
arcShape
=
new
THREE
.
Shape
();
arcShape
.
moveTo
(
50
,
10
);
arcShape
.
absarc
(
10
,
10
,
40
,
0
,
Math
.
PI
*
2
,
false
);
var
arcShape
=
new
THREE
.
Shape
()
.
moveTo
(
50
,
10
)
.
absarc
(
10
,
10
,
40
,
0
,
Math
.
PI
*
2
,
false
);
var
holePath
=
new
THREE
.
Path
()
.
moveTo
(
20
,
10
)
.
absarc
(
10
,
10
,
10
,
0
,
Math
.
PI
*
2
,
true
)
var
holePath
=
new
THREE
.
Path
();
holePath
.
moveTo
(
20
,
10
);
holePath
.
absarc
(
10
,
10
,
10
,
0
,
Math
.
PI
*
2
,
true
);
arcShape
.
holes
.
push
(
holePath
);
// Smiley
var
smileyShape
=
new
THREE
.
Shape
()
;
smileyShape
.
moveTo
(
80
,
40
);
smileyShape
.
absarc
(
40
,
40
,
40
,
0
,
Math
.
PI
*
2
,
false
);
var
smileyShape
=
new
THREE
.
Shape
()
.
moveTo
(
80
,
40
)
.
absarc
(
40
,
40
,
40
,
0
,
Math
.
PI
*
2
,
false
);
var
smileyEye1Path
=
new
THREE
.
Path
()
;
smileyEye1Path
.
moveTo
(
35
,
20
);
smileyEye1Path
.
absellipse
(
25
,
20
,
10
,
10
,
0
,
Math
.
PI
*
2
,
true
);
var
smileyEye1Path
=
new
THREE
.
Path
()
.
moveTo
(
35
,
20
)
.
absellipse
(
25
,
20
,
10
,
10
,
0
,
Math
.
PI
*
2
,
true
);
smileyShape
.
holes
.
push
(
smileyEye1Path
);
var
smileyEye2Path
=
new
THREE
.
Path
()
.
moveTo
(
65
,
20
)
.
absarc
(
55
,
20
,
10
,
0
,
Math
.
PI
*
2
,
true
);
var
smileyEye2Path
=
new
THREE
.
Path
();
smileyEye2Path
.
moveTo
(
65
,
20
);
smileyEye2Path
.
absarc
(
55
,
20
,
10
,
0
,
Math
.
PI
*
2
,
true
);
smileyShape
.
holes
.
push
(
smileyEye2Path
);
var
smileyMouthPath
=
new
THREE
.
Path
();
smileyMouthPath
.
moveTo
(
20
,
40
);
smileyMouthPath
.
quadraticCurveTo
(
40
,
60
,
60
,
40
);
smileyMouthPath
.
bezierCurveTo
(
70
,
45
,
70
,
50
,
60
,
60
);
smileyMouthPath
.
quadraticCurveTo
(
40
,
80
,
20
,
60
);
smileyMouthPath
.
quadraticCurveTo
(
5
,
50
,
20
,
40
);
var
smileyMouthPath
=
new
THREE
.
Path
()
.
moveTo
(
20
,
40
)
.
quadraticCurveTo
(
40
,
60
,
60
,
40
)
.
bezierCurveTo
(
70
,
45
,
70
,
50
,
60
,
60
)
.
quadraticCurveTo
(
40
,
80
,
20
,
60
)
.
quadraticCurveTo
(
5
,
50
,
20
,
40
);
smileyShape
.
holes
.
push
(
smileyEye1Path
);
smileyShape
.
holes
.
push
(
smileyEye2Path
);
smileyShape
.
holes
.
push
(
smileyMouthPath
);
...
...
@@ -332,9 +329,9 @@
splinepts
.
push
(
new
THREE
.
Vector2
(
-
30
,
70
)
);
splinepts
.
push
(
new
THREE
.
Vector2
(
0
,
0
)
);
var
splineShape
=
new
THREE
.
Shape
()
;
splineShape
.
moveTo
(
0
,
0
);
splineShape
.
splineThru
(
splinepts
);
var
splineShape
=
new
THREE
.
Shape
()
.
moveTo
(
0
,
0
)
.
splineThru
(
splinepts
);
var
extrudeSettings
=
{
depth
:
8
,
bevelEnabled
:
true
,
bevelSegments
:
2
,
steps
:
2
,
bevelSize
:
1
,
bevelThickness
:
1
};
...
...
src/Three.Legacy.js
浏览文件 @
a4a11cc1
...
...
@@ -308,7 +308,7 @@ Object.assign( Path.prototype, {
fromPoints
:
function
(
points
)
{
console
.
warn
(
'
THREE.Path: .fromPoints() has been renamed to .setFromPoints().
'
);
this
.
setFromPoints
(
points
);
return
this
.
setFromPoints
(
points
);
}
...
...
src/extras/core/Path.d.ts
浏览文件 @
a4a11cc1
...
...
@@ -28,11 +28,11 @@ export class Path extends CurvePath<Vector2> {
/**
* @deprecated Use {@link Path#setFromPoints .setFromPoints()} instead.
*/
fromPoints
(
vectors
:
Vector2
[]
):
void
;
setFromPoints
(
vectors
:
Vector2
[]
):
void
;
moveTo
(
x
:
number
,
y
:
number
):
void
;
lineTo
(
x
:
number
,
y
:
number
):
void
;
quadraticCurveTo
(
aCPx
:
number
,
aCPy
:
number
,
aX
:
number
,
aY
:
number
):
void
;
fromPoints
(
vectors
:
Vector2
[]
):
this
;
setFromPoints
(
vectors
:
Vector2
[]
):
this
;
moveTo
(
x
:
number
,
y
:
number
):
this
;
lineTo
(
x
:
number
,
y
:
number
):
this
;
quadraticCurveTo
(
aCPx
:
number
,
aCPy
:
number
,
aX
:
number
,
aY
:
number
):
this
;
bezierCurveTo
(
aCP1x
:
number
,
aCP1y
:
number
,
...
...
@@ -40,8 +40,8 @@ export class Path extends CurvePath<Vector2> {
aCP2y
:
number
,
aX
:
number
,
aY
:
number
):
void
;
splineThru
(
pts
:
Vector2
[]
):
void
;
):
this
;
splineThru
(
pts
:
Vector2
[]
):
this
;
arc
(
aX
:
number
,
aY
:
number
,
...
...
@@ -49,7 +49,7 @@ export class Path extends CurvePath<Vector2> {
aStartAngle
:
number
,
aEndAngle
:
number
,
aClockwise
:
boolean
):
void
;
):
this
;
absarc
(
aX
:
number
,
aY
:
number
,
...
...
@@ -57,7 +57,7 @@ export class Path extends CurvePath<Vector2> {
aStartAngle
:
number
,
aEndAngle
:
number
,
aClockwise
:
boolean
):
void
;
):
this
;
ellipse
(
aX
:
number
,
aY
:
number
,
...
...
@@ -67,7 +67,7 @@ export class Path extends CurvePath<Vector2> {
aEndAngle
:
number
,
aClockwise
:
boolean
,
aRotation
:
number
):
void
;
):
this
;
absellipse
(
aX
:
number
,
aY
:
number
,
...
...
@@ -77,6 +77,6 @@ export class Path extends CurvePath<Vector2> {
aEndAngle
:
number
,
aClockwise
:
boolean
,
aRotation
:
number
):
void
;
):
this
;
}
src/extras/core/Path.js
浏览文件 @
a4a11cc1
...
...
@@ -41,12 +41,16 @@ Path.prototype = Object.assign( Object.create( CurvePath.prototype ), {
}
return
this
;
},
moveTo
:
function
(
x
,
y
)
{
this
.
currentPoint
.
set
(
x
,
y
);
// TODO consider referencing vectors instead of copying?
return
this
;
},
lineTo
:
function
(
x
,
y
)
{
...
...
@@ -56,6 +60,8 @@ Path.prototype = Object.assign( Object.create( CurvePath.prototype ), {
this
.
currentPoint
.
set
(
x
,
y
);
return
this
;
},
quadraticCurveTo
:
function
(
aCPx
,
aCPy
,
aX
,
aY
)
{
...
...
@@ -70,6 +76,8 @@ Path.prototype = Object.assign( Object.create( CurvePath.prototype ), {
this
.
currentPoint
.
set
(
aX
,
aY
);
return
this
;
},
bezierCurveTo
:
function
(
aCP1x
,
aCP1y
,
aCP2x
,
aCP2y
,
aX
,
aY
)
{
...
...
@@ -85,6 +93,8 @@ Path.prototype = Object.assign( Object.create( CurvePath.prototype ), {
this
.
currentPoint
.
set
(
aX
,
aY
);
return
this
;
},
splineThru
:
function
(
pts
/*Array of Vector*/
)
{
...
...
@@ -96,6 +106,8 @@ Path.prototype = Object.assign( Object.create( CurvePath.prototype ), {
this
.
currentPoint
.
copy
(
pts
[
pts
.
length
-
1
]
);
return
this
;
},
arc
:
function
(
aX
,
aY
,
aRadius
,
aStartAngle
,
aEndAngle
,
aClockwise
)
{
...
...
@@ -106,12 +118,16 @@ Path.prototype = Object.assign( Object.create( CurvePath.prototype ), {
this
.
absarc
(
aX
+
x0
,
aY
+
y0
,
aRadius
,
aStartAngle
,
aEndAngle
,
aClockwise
);
return
this
;
},
absarc
:
function
(
aX
,
aY
,
aRadius
,
aStartAngle
,
aEndAngle
,
aClockwise
)
{
this
.
absellipse
(
aX
,
aY
,
aRadius
,
aRadius
,
aStartAngle
,
aEndAngle
,
aClockwise
);
return
this
;
},
ellipse
:
function
(
aX
,
aY
,
xRadius
,
yRadius
,
aStartAngle
,
aEndAngle
,
aClockwise
,
aRotation
)
{
...
...
@@ -121,6 +137,8 @@ Path.prototype = Object.assign( Object.create( CurvePath.prototype ), {
this
.
absellipse
(
aX
+
x0
,
aY
+
y0
,
xRadius
,
yRadius
,
aStartAngle
,
aEndAngle
,
aClockwise
,
aRotation
);
return
this
;
},
absellipse
:
function
(
aX
,
aY
,
xRadius
,
yRadius
,
aStartAngle
,
aEndAngle
,
aClockwise
,
aRotation
)
{
...
...
@@ -145,6 +163,8 @@ Path.prototype = Object.assign( Object.create( CurvePath.prototype ), {
var
lastPoint
=
curve
.
getPoint
(
1
);
this
.
currentPoint
.
copy
(
lastPoint
);
return
this
;
},
copy
:
function
(
source
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录