Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
03770624
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,发现更多精彩内容 >>
提交
03770624
编写于
1月 29, 2014
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fixtriang' of
https://github.com/jahting/three.js
into dev
上级
fcdde251
1a8e5fdb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
5 deletion
+10
-5
src/extras/core/Shape.js
src/extras/core/Shape.js
+10
-5
未找到文件。
src/extras/core/Shape.js
浏览文件 @
03770624
...
...
@@ -125,7 +125,7 @@ THREE.Shape.Utils = {
triangulateShape
:
function
(
contour
,
holes
)
{
function
point_in_segment_2D
(
inSegPt1
,
inSegPt2
,
inOtherPt
)
{
function
point_in_segment_2D
_colin
(
inSegPt1
,
inSegPt2
,
inOtherPt
)
{
// inOtherPt needs to be colinear to the inSegment
if
(
inSegPt1
.
x
!=
inSegPt2
.
x
)
{
if
(
inSegPt1
.
x
<
inSegPt2
.
x
)
{
...
...
@@ -167,7 +167,8 @@ THREE.Shape.Utils = {
if
(
(
perpSeg2
>
0
)
||
(
perpSeg2
<
limit
)
)
return
[];
}
// intersection at endpoint ?
// i.e. to reduce rounding errors
// intersection at endpoint of segment#1?
if
(
perpSeg2
==
0
)
{
if
(
(
inExcludeAdjacentSegs
)
&&
(
(
perpSeg1
==
0
)
||
(
perpSeg1
==
limit
)
)
)
return
[];
...
...
@@ -178,6 +179,9 @@ THREE.Shape.Utils = {
(
(
perpSeg1
==
0
)
||
(
perpSeg1
==
limit
)
)
)
return
[];
return
[
inSeg1Pt2
];
}
// intersection at endpoint of segment#2?
if
(
perpSeg1
==
0
)
return
[
inSeg2Pt1
];
if
(
perpSeg1
==
limit
)
return
[
inSeg2Pt2
];
// return real intersection point
var
factorSeg1
=
perpSeg2
/
limit
;
...
...
@@ -185,7 +189,8 @@ THREE.Shape.Utils = {
y
:
inSeg1Pt1
.
y
+
factorSeg1
*
seg1dy
}
];
}
else
{
// parallel or colinear
if
(
perpSeg1
!=
0
)
return
[];
if
(
(
perpSeg1
!=
0
)
||
(
seg2dy
*
seg1seg2dx
!=
seg2dx
*
seg1seg2dy
)
)
return
[];
// they are collinear or degenerate
var
seg1Pt
=
(
(
seg1dx
==
0
)
&&
(
seg1dy
==
0
)
);
// segment1 ist just a point?
...
...
@@ -198,12 +203,12 @@ THREE.Shape.Utils = {
}
// segment#1 is a single point
if
(
seg1Pt
)
{
if
(
!
point_in_segment_2D
(
inSeg2Pt1
,
inSeg2Pt2
,
inSeg1Pt1
)
)
return
[];
// but not in segment#2
if
(
!
point_in_segment_2D
_colin
(
inSeg2Pt1
,
inSeg2Pt2
,
inSeg1Pt1
)
)
return
[];
// but not in segment#2
return
[
inSeg1Pt1
];
}
// segment#2 is a single point
if
(
seg2Pt
)
{
if
(
!
point_in_segment_2D
(
inSeg1Pt1
,
inSeg1Pt2
,
inSeg2Pt1
)
)
return
[];
// but not in segment#1
if
(
!
point_in_segment_2D
_colin
(
inSeg1Pt1
,
inSeg1Pt2
,
inSeg2Pt1
)
)
return
[];
// but not in segment#1
return
[
inSeg2Pt1
];
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录