Skip to content
GitLab
菜单
项目
群组
代码片段
/
帮助
帮助
支持
社区论坛
快捷键
?
提交反馈
登录/注册
切换导航
菜单
打开侧边栏
wenxiangdong
drawing-panel
提交
87fff498
提交
87fff498
编辑于
9月 19, 2018
作者:
wenxiangdong
浏览文件
画板加载独立出来
上级
288f8303
变更
31
Hide whitespace changes
Inline
Side-by-side
drawing-panel/src/drawing/drawing-panel.js
浏览文件 @
87fff498
...
...
@@ -118,6 +118,11 @@ var DrawingPanel = /** @class */ (function () {
var
ctx
=
this
.
canvas
.
getContext
(
'
2d
'
);
ctx
.
clearRect
(
0
,
0
,
this
.
options
.
width
,
this
.
options
.
height
);
};
/**
* 写文字
* @param {string} text
* @param {Point} point
*/
DrawingPanel
.
prototype
.
drawText
=
function
(
text
,
point
)
{
var
ctx
=
this
.
canvas
.
getContext
(
'
2d
'
);
ctx
.
save
();
...
...
@@ -126,6 +131,10 @@ var DrawingPanel = /** @class */ (function () {
ctx
.
fillText
(
text
,
point
.
x
,
point
.
y
);
ctx
.
restore
();
};
/**
* 初始化画板
* @param {DrawingPanelOptions} options
*/
DrawingPanel
.
prototype
.
initCanvas
=
function
(
options
)
{
var
canvas
=
this
.
canvas
;
canvas
.
width
=
options
.
width
;
...
...
@@ -135,6 +144,11 @@ var DrawingPanel = /** @class */ (function () {
}
this
.
options
=
options
;
};
/**
* 总体初始化
* @param {string} containerID
* @param {DrawingPanelOptions} options
*/
DrawingPanel
.
prototype
.
init
=
function
(
containerID
,
options
)
{
var
container
=
document
.
getElementById
(
containerID
);
if
(
!
container
)
{
...
...
drawing-panel/src/drawing/drawing-panel.js.map
浏览文件 @
87fff498
{"version":3,"file":"drawing-panel.js","sourceRoot":"","sources":["drawing-panel.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"drawing-panel.js","sourceRoot":"","sources":["drawing-panel.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
drawing-panel/src/drawing/drawing-panel.ts
浏览文件 @
87fff498
import
logger
from
'
../utils/logger
'
;
import
{
DrawingTool
}
from
'
./drawing-tool
'
;
import
{
I
DrawingTool
}
from
'
./
i-
drawing-tool
'
;
import
{
Point
,
Shape
}
from
'
../shape/shape
'
;
import
{
IPanelStateManager
,
...
...
@@ -26,7 +26,7 @@ export class DrawingPanel {
private
static
labelColor
=
'
tomato
'
;
private
static
labelFont
=
'
bold 20px Arial
'
;
private
canvas
:
HTMLCanvasElement
;
private
drawingTool
:
DrawingTool
;
private
drawingTool
:
I
DrawingTool
;
private
drawing
:
boolean
;
private
options
:
DrawingPanelOptions
;
private
stateManager
:
IPanelStateManager
;
...
...
@@ -47,7 +47,7 @@ export class DrawingPanel {
}
// 切换画图工具
public
setDrawingTool
(
tool
:
DrawingTool
)
{
public
setDrawingTool
(
tool
:
I
DrawingTool
)
{
if
(
this
.
drawingTool
)
{
this
.
drawingTool
.
stop
();
}
...
...
@@ -154,6 +154,11 @@ export class DrawingPanel {
}
};
/**
* 写文字
* @param {string} text
* @param {Point} point
*/
private
drawText
(
text
:
string
,
point
:
Point
)
{
const
ctx
=
this
.
canvas
.
getContext
(
'
2d
'
);
ctx
.
save
();
...
...
@@ -163,6 +168,10 @@ export class DrawingPanel {
ctx
.
restore
();
}
/**
* 初始化画板
* @param {DrawingPanelOptions} options
*/
private
initCanvas
(
options
:
DrawingPanelOptions
)
{
const
canvas
=
this
.
canvas
;
canvas
.
width
=
options
.
width
;
...
...
@@ -173,6 +182,11 @@ export class DrawingPanel {
this
.
options
=
options
;
}
/**
* 总体初始化
* @param {string} containerID
* @param {DrawingPanelOptions} options
*/
private
init
(
containerID
:
string
,
options
:
DrawingPanelOptions
)
{
const
container
=
document
.
getElementById
(
containerID
);
if
(
!
container
)
{
...
...
drawing-panel/src/drawing/drawing-tool-custom.ts
浏览文件 @
87fff498
import
{
DrawingTool
}
from
'
./drawing-tool
'
;
import
{
I
DrawingTool
}
from
'
./
i-
drawing-tool
'
;
import
{
Shape
}
from
'
../shape/shape
'
;
import
logger
from
'
../utils/logger
'
;
import
{
PanelState
}
from
'
../panel-state-manager/panel-state-manager
'
;
export
class
DrawingToolCustom
implements
DrawingTool
{
export
class
DrawingToolCustom
implements
I
DrawingTool
{
drawing
:
boolean
;
static
counter
:
number
=
0
;
...
...
drawing-panel/src/drawing/drawing-tool.js.map
已删除
100644 → 0
浏览文件 @
288f8303
{"version":3,"file":"drawing-tool.js","sourceRoot":"","sources":["drawing-tool.ts"],"names":[],"mappings":""}
\ No newline at end of file
drawing-panel/src/drawing/drawing-tool.js
→
drawing-panel/src/drawing/
i-
drawing-tool.js
浏览文件 @
87fff498
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
//# sourceMappingURL=drawing-tool.js.map
\ No newline at end of file
//# sourceMappingURL=i-drawing-tool.js.map
\ No newline at end of file
drawing-panel/src/drawing/i-drawing-tool.js.map
0 → 100644
浏览文件 @
87fff498
{"version":3,"file":"i-drawing-tool.js","sourceRoot":"","sources":["i-drawing-tool.ts"],"names":[],"mappings":""}
\ No newline at end of file
drawing-panel/src/drawing/drawing-tool.ts
→
drawing-panel/src/drawing/
i-
drawing-tool.ts
浏览文件 @
87fff498
import
{
Shape
}
from
'
../shape/shape
'
;
import
{
PanelState
}
from
'
../panel-state-manager/panel-state-manager
'
;
export
interface
DrawingTool
{
export
interface
I
DrawingTool
{
canvas
:
HTMLCanvasElement
;
drawing
:
boolean
;
init
(
onDrawingEnd
?:
(
shape
:
Shape
,
lastState
:
PanelState
)
=>
void
):
void
;
...
...
drawing-panel/src/drawing/panel-loader.js
0 → 100644
浏览文件 @
87fff498
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
var
drawing_panel_1
=
require
(
"
./drawing-panel
"
);
var
drawing_tool_custom_1
=
require
(
"
./drawing-tool-custom
"
);
var
panel_state_manager_1
=
require
(
"
../panel-state-manager/panel-state-manager
"
);
var
PanelLoader
=
/** @class */
(
function
()
{
function
PanelLoader
()
{
}
PanelLoader
.
createPanel
=
function
()
{
var
panel
=
new
drawing_panel_1
.
DrawingPanel
(
this
.
CONTAINER_ID
,
this
.
config
);
panel
.
setDrawingTool
(
new
this
.
dependendyMap
.
IDrawingTool
(
panel
.
getCanvas
()));
panel
.
setStateManager
(
new
this
.
dependendyMap
.
IPanelStateManager
());
return
panel
;
};
PanelLoader
.
dependendyMap
=
{
IDrawingTool
:
drawing_tool_custom_1
.
DrawingToolCustom
,
IPanelStateManager
:
panel_state_manager_1
.
PanelStateManagerByLocalStorage
};
PanelLoader
.
CONTAINER_ID
=
'
container
'
;
PanelLoader
.
config
=
{
width
:
800
,
height
:
600
};
return
PanelLoader
;
}());
exports
.
PanelLoader
=
PanelLoader
;
//# sourceMappingURL=panel-loader.js.map
\ No newline at end of file
drawing-panel/src/drawing/panel-loader.js.map
0 → 100644
浏览文件 @
87fff498
{"version":3,"file":"panel-loader.js","sourceRoot":"","sources":["panel-loader.ts"],"names":[],"mappings":";;AAAA,iDAA+C;AAC/C,6DAA0D;AAC1D,kFAA6F;AAE7F;IAAA;IAcA,CAAC;IANQ,uBAAW,GAAlB;QACE,IAAI,KAAK,GAAG,IAAI,4BAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,KAAK,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7E,KAAK,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAZM,yBAAa,GAAG;QACrB,YAAY,EAAE,uCAAiB;QAC/B,kBAAkB,EAAE,qDAA+B;KACpD,CAAC;IACK,wBAAY,GAAG,WAAW,CAAC;IAC3B,kBAAM,GAAG,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC;IAQ5C,kBAAC;CAAA,AAdD,IAcC;AAdY,kCAAW"}
\ No newline at end of file
drawing-panel/src/drawing/panel-loader.ts
0 → 100644
浏览文件 @
87fff498
import
{
DrawingPanel
}
from
'
./drawing-panel
'
;
import
{
DrawingToolCustom
}
from
'
./drawing-tool-custom
'
;
import
{
PanelStateManagerByLocalStorage
}
from
'
../panel-state-manager/panel-state-manager
'
;
export
class
PanelLoader
{
static
dependendyMap
=
{
IDrawingTool
:
DrawingToolCustom
,
IPanelStateManager
:
PanelStateManagerByLocalStorage
};
static
CONTAINER_ID
=
'
container
'
;
static
config
=
{
width
:
800
,
height
:
600
};
static
createPanel
():
DrawingPanel
{
let
panel
=
new
DrawingPanel
(
this
.
CONTAINER_ID
,
this
.
config
);
panel
.
setDrawingTool
(
new
this
.
dependendyMap
.
IDrawingTool
(
panel
.
getCanvas
()));
panel
.
setStateManager
(
new
this
.
dependendyMap
.
IPanelStateManager
());
return
panel
;
}
}
\ No newline at end of file
drawing-panel/src/ioc/ioc.js
0 → 100644
浏览文件 @
87fff498
var
dependencyPool
=
{};
function
propertyInject
(
dependency
)
{
return
function
(
target
,
propertyName
)
{
var
constructor
=
dependencyPool
[
dependency
];
if
(
!
constructor
)
{
throw
new
Error
(
"
\
u4F9D
\
u8D56
"
+
dependency
+
"
\
u672A
\
u6CE8
\
u518C
"
);
}
return
new
constructor
();
};
}
function
bind
(
name
,
constructor
)
{
}
//# sourceMappingURL=ioc.js.map
\ No newline at end of file
drawing-panel/src/ioc/ioc.js.map
0 → 100644
浏览文件 @
87fff498
{"version":3,"file":"ioc.js","sourceRoot":"","sources":["ioc.ts"],"names":[],"mappings":"AAAA,IAAI,cAAc,GAA0C,EAAE,CAAC;AAE/D,SAAS,cAAc,CAAC,UAAU;IAChC,OAAO,UAAU,MAAW,EAAE,YAAoB;QAChD,IAAI,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,iBAAK,UAAU,uBAAK,CAAC,CAAC;SACvC;QACD,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAA;AACH,CAAC;AAED,SAAS,IAAI,CAAC,IAAY,EAAE,WAAgC;AAE5D,CAAC"}
\ No newline at end of file
drawing-panel/src/ioc/ioc.ts
0 → 100644
浏览文件 @
87fff498
var
dependencyPool
:
{[
name
:
string
]:
FunctionConstructor
}
=
{};
function
propertyInject
(
dependency
)
{
return
function
(
target
:
any
,
propertyName
:
string
)
{
let
constructor
=
dependencyPool
[
dependency
];
if
(
!
constructor
)
{
throw
new
Error
(
`依赖
${
dependency
}
未注册`
);
}
return
new
constructor
();
}
}
function
bind
(
name
:
string
,
constructor
:
FunctionConstructor
)
{
}
\ No newline at end of file
drawing-panel/src/main.js
浏览文件 @
87fff498
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
var
drawing_panel_1
=
require
(
"
./drawing/drawing-panel
"
);
var
drawing_tool_custom_1
=
require
(
"
./drawing/drawing-tool-custom
"
);
var
$
=
require
(
"
jquery
"
);
var
logger_1
=
require
(
"
./utils/logger
"
);
var
panel_state_manager_1
=
require
(
"
./panel-state-manager/panel-state-manager
"
);
var
message_1
=
require
(
"
./utils/message
"
);
var
panel_loader_1
=
require
(
"
./drawing/panel-loader
"
);
var
tool
;
var
panel
;
var
states
=
[];
...
...
@@ -13,12 +11,8 @@ var SAVE_BTN_ID = 'save-btn';
var
NEW_BTN_ID
=
'
new-btn
'
;
var
STATE_LIST_ID
=
'
state-list
'
;
var
TAG
=
'
main.ts
'
;
var
CONTAINER_ID
=
'
container
'
;
window
.
onload
=
function
(
e
)
{
panel
=
new
drawing_panel_1
.
DrawingPanel
(
CONTAINER_ID
,
{
width
:
800
,
height
:
600
});
tool
=
new
drawing_tool_custom_1
.
DrawingToolCustom
(
panel
.
getCanvas
());
panel
.
setDrawingTool
(
tool
);
panel
.
setStateManager
(
new
panel_state_manager_1
.
PanelStateManagerByLocalStorage
());
panel
=
panel_loader_1
.
PanelLoader
.
createPanel
();
// 初始列表
states
=
panel
.
getPanelStates
();
refreshList
();
...
...
drawing-panel/src/main.js.map
浏览文件 @
87fff498
{"version":3,"file":"main.js","sourceRoot":"","sources":["main.ts"],"names":[],"mappings":";;AAAA,yDAAuD;AACvD,qEAAkE;AAClE,0BAA4B;AAC5B,yCAAoC;AACpC,iFAAwG;AACxG,2CAA0C;AAE1C,IAAI,IAAI,CAAC;AACT,IAAI,KAAmB,CAAC;AACxB,IAAI,MAAM,GAAiB,EAAE,CAAC;AAE9B,IAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,IAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,IAAM,aAAa,GAAG,YAAY,CAAC;AACnC,IAAM,GAAG,GAAG,SAAS,CAAC;AACtB,IAAM,YAAY,GAAG,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,GAAG,UAAC,CAAC;IAChB,KAAK,GAAG,IAAI,4BAAY,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;IAClE,IAAI,GAAG,IAAI,uCAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,CAAC,eAAe,CAAC,IAAI,qDAA+B,EAAE,CAAC,CAAC;IAE7D,OAAO;IACP,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;IAChC,WAAW,EAAE,CAAC;IAEd,SAAS;IACT,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC;KAC9B;IACD,IAAI,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;KAC5B;AACH,CAAC,CAAA;AAGD,IAAM,UAAU,GAAG;IACjB,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;IAC5B,WAAW,EAAE,CAAC;AAChB,CAAC,CAAC;AACF,IAAM,SAAS,GAAG;IAChB,KAAK,CAAC,WAAW,EAAE,CAAC;IACpB,iBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,IAAM,WAAW,GAAG;IAClB,gBAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnC,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE,CAAC;IACb,gBAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;4BACtB,KAAK;QACZ,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;QACxB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,gBAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;YACf,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IATD,KAAkB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM;QAAnB,IAAI,KAAK,eAAA;gBAAL,KAAK;KASb;AACH,CAAC,CAAA"}
\ No newline at end of file
{"version":3,"file":"main.js","sourceRoot":"","sources":["main.ts"],"names":[],"mappings":";;AAEA,0BAA4B;AAC5B,yCAAoC;AAEpC,2CAA0C;AAC1C,uDAAqD;AAErD,IAAI,IAAI,CAAC;AACT,IAAI,KAAmB,CAAC;AACxB,IAAI,MAAM,GAAiB,EAAE,CAAC;AAE9B,IAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,IAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,IAAM,aAAa,GAAG,YAAY,CAAC;AACnC,IAAM,GAAG,GAAG,SAAS,CAAC;AAEtB,MAAM,CAAC,MAAM,GAAG,UAAC,CAAC;IAChB,KAAK,GAAG,0BAAW,CAAC,WAAW,EAAE,CAAC;IAClC,OAAO;IACP,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;IAChC,WAAW,EAAE,CAAC;IAEd,SAAS;IACT,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC;KAC9B;IACD,IAAI,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;KAC5B;AACH,CAAC,CAAA;AAGD,IAAM,UAAU,GAAG;IACjB,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;IAC5B,WAAW,EAAE,CAAC;AAChB,CAAC,CAAC;AACF,IAAM,SAAS,GAAG;IAChB,KAAK,CAAC,WAAW,EAAE,CAAC;IACpB,iBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,IAAM,WAAW,GAAG;IAClB,gBAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnC,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE,CAAC;IACb,gBAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;4BACtB,KAAK;QACZ,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;QACxB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,gBAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;YACf,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IATD,KAAkB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM;QAAnB,IAAI,KAAK,eAAA;gBAAL,KAAK;KASb;AACH,CAAC,CAAA"}
\ No newline at end of file
drawing-panel/src/main.ts
浏览文件 @
87fff498
...
...
@@ -4,6 +4,7 @@ import * as $ from 'jquery';
import
logger
from
'
./utils/logger
'
;
import
{
PanelState
,
PanelStateManagerByLocalStorage
}
from
'
./panel-state-manager/panel-state-manager
'
;
import
{
Message
}
from
'
./utils/message
'
;
import
{
PanelLoader
}
from
'
./drawing/panel-loader
'
;
var
tool
;
var
panel
:
DrawingPanel
;
...
...
@@ -13,14 +14,9 @@ const SAVE_BTN_ID = 'save-btn';
const
NEW_BTN_ID
=
'
new-btn
'
;
const
STATE_LIST_ID
=
'
state-list
'
;
const
TAG
=
'
main.ts
'
;
const
CONTAINER_ID
=
'
container
'
;
window
.
onload
=
(
e
)
=>
{
panel
=
new
DrawingPanel
(
CONTAINER_ID
,
{
width
:
800
,
height
:
600
});
tool
=
new
DrawingToolCustom
(
panel
.
getCanvas
());
panel
.
setDrawingTool
(
tool
);
panel
.
setStateManager
(
new
PanelStateManagerByLocalStorage
());
panel
=
PanelLoader
.
createPanel
();
// 初始列表
states
=
panel
.
getPanelStates
();
refreshList
();
...
...
drawing-panel/src/recogonition/line-recognition.js
浏览文件 @
87fff498
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
var
line_1
=
require
(
"
../shape/line
"
);
var
shape_recognition_util_1
=
require
(
"
./shape-recognition-util
"
);
var
logger_1
=
require
(
"
../utils/logger
"
);
var
LineRecognition
=
/** @class */
(
function
()
{
function
LineRecognition
()
{
}
LineRecognition
.
prototype
.
test
=
function
(
coordinates
)
{
var
start
=
coordinates
[
0
];
var
end
=
coordinates
[
coordinates
.
length
-
1
];
for
(
var
_i
=
0
,
coordinates_1
=
coordinates
;
_i
<
coordinates_1
.
length
;
_i
++
)
{
var
point
=
coordinates_1
[
_i
];
var
rate
=
this
.
calRate
(
start
,
end
);
for
(
var
i
=
1
;
i
<
coordinates
.
length
;
i
++
)
{
var
point
=
coordinates
[
i
];
var
rate1
=
this
.
calRate
(
point
,
start
);
var
rate2
=
this
.
calRate
(
point
,
end
);
logger_1
.
default
.
info
(
LineRecognition
.
name
,
rate1
+
"
:
"
+
rate
);
// 斜率相差超过一定数值则认为不在同一线上
if
(
Math
.
abs
(
rate1
-
rate
2
)
>
LineRecognition
.
DIFF
)
{
if
(
!
shape_recognition_util_1
.
Util
.
equal
(
rate1
,
rate
,
0.2
)
)
{
return
undefined
;
}
}
return
new
line_1
.
Line
([
start
,
end
],
new
Date
().
getTime
().
toString
());
};
LineRecognition
.
prototype
.
calRate
=
function
(
a
,
b
)
{
return
(
a
.
y
-
b
.
y
)
/
(
a
.
x
-
b
.
x
);
// logger.info(LineRecognition.name, a, b);
if
(
a
.
x
===
b
.
x
)
return
Number
.
MAX_VALUE
;
var
rate
=
(
a
.
y
-
b
.
y
)
/
(
a
.
x
-
b
.
x
);
rate
=
Math
.
round
(
rate
*
100
);
return
rate
;
};
LineRecognition
.
DIFF
=
3
;
return
LineRecognition
;
}());
exports
.
LineRecognition
=
LineRecognition
;
...
...
drawing-panel/src/recogonition/line-recognition.js.map
浏览文件 @
87fff498
{"version":3,"file":"line-recognition.js","sourceRoot":"","sources":["line-recognition.ts"],"names":[],"mappings":";;AAEA,sCAAqC;AAErC;IAAA;IAwBA,CAAC;IAtBC,8BAAI,GAAJ,UAAK,WAAoB;QACvB,IAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAM,GAAG,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEhD,KAAkB,UAAW,EAAX,2BAAW,EAAX,yBAAW,EAAX,IAAW,EAAE;YAA1B,IAAI,KAAK,oBAAA;YACZ,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACvC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACrC,sBAAsB;YACtB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE;gBAClD,OAAO,SAAS,CAAC;aAClB;SACF;QACD,OAAO,IAAI,WAAI,CACb,CAAC,KAAK,EAAE,GAAG,CAAC,EACZ,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAChC,CAAC;IACJ,CAAC;IAGO,iCAAO,GAAf,UAAgB,CAAQ,EAAE,CAAQ;QAChC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAtBc,oBAAI,GAAG,CAAC,CAAC;IAuB1B,sBAAC;CAAA,AAxBD,IAwBC;AAxBY,0CAAe"}
\ No newline at end of file
{"version":3,"file":"line-recognition.js","sourceRoot":"","sources":["line-recognition.ts"],"names":[],"mappings":";;AAEA,sCAAqC;AACrC,mEAAgD;AAChD,0CAAqC;AAErC;IAAA;IA6BA,CAAC;IA5BC,8BAAI,GAAJ,UAAK,WAAoB;QACvB,IAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAM,GAAG,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChD,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACvC,gBAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAK,KAAK,SAAI,IAAM,CAAC,CAAC;YACtD,sBAAsB;YACtB,IAAI,CAAC,6BAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;gBACjC,OAAO,SAAS,CAAC;aAClB;SACF;QACD,OAAO,IAAI,WAAI,CACb,CAAC,KAAK,EAAE,GAAG,CAAC,EACZ,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAChC,CAAC;IACJ,CAAC;IAGO,iCAAO,GAAf,UAAgB,CAAQ,EAAE,CAAQ;QAChC,2CAA2C;QAC3C,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC,SAAS,CAAC;QACzC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACH,sBAAC;AAAD,CAAC,AA7BD,IA6BC;AA7BY,0CAAe"}
\ No newline at end of file
drawing-panel/src/recogonition/line-recognition.ts
浏览文件 @
87fff498
import
{
ShapeRecognitionService
}
from
'
./shape-recognition-service
'
;
import
{
Point
,
Shape
}
from
'
../shape/shape
'
;
import
{
Line
}
from
'
../shape/line
'
;
import
{
Util
}
from
'
./shape-recognition-util
'
;
import
logger
from
'
../utils/logger
'
;
export
class
LineRecognition
implements
ShapeRecognitionService
{
private
static
DIFF
=
3
;
test
(
coordinates
:
Point
[]):
Shape
{
const
start
=
coordinates
[
0
];
const
end
=
coordinates
[
coordinates
.
length
-
1
];
const
rate
=
this
.
calRate
(
start
,
end
);
for
(
let
point
of
coordinates
)
{
for
(
let
i
=
1
;
i
<
coordinates
.
length
;
i
++
)
{
let
point
=
coordinates
[
i
];
let
rate1
=
this
.
calRate
(
point
,
start
);
l
et
rate2
=
this
.
calRate
(
point
,
end
);
l
ogger
.
info
(
LineRecognition
.
name
,
`
${
rate1
}
:
${
rate
}
`
);
// 斜率相差超过一定数值则认为不在同一线上
if
(
Math
.
abs
(
rate1
-
rate
2
)
>
LineRecognition
.
DIFF
)
{
if
(
!
Util
.
equal
(
rate1
,
rate
,
0.2
)
)
{
return
undefined
;
}
}
...
...
@@ -24,6 +27,10 @@ export class LineRecognition implements ShapeRecognitionService{
private
calRate
(
a
:
Point
,
b
:
Point
)
{
return
(
a
.
y
-
b
.
y
)
/
(
a
.
x
-
b
.
x
);
// logger.info(LineRecognition.name, a, b);
if
(
a
.
x
===
b
.
x
)
return
Number
.
MAX_VALUE
;
let
rate
=
(
a
.
y
-
b
.
y
)
/
(
a
.
x
-
b
.
x
);
rate
=
Math
.
round
(
rate
*
100
);
return
rate
;
}
}
\ No newline at end of file
上一页
1
2
下一页
编辑
预览
支持
Markdown
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录