Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
sdkjs
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boris Kocherov
sdkjs
Commits
ca28b196
Commit
ca28b196
authored
Nov 16, 2016
by
GoshaZotov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
+ previous revision
parent
677b0fc9
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
86 additions
and
143 deletions
+86
-143
common/Charts/ChartsDrawer.js
common/Charts/ChartsDrawer.js
+86
-143
No files found.
common/Charts/ChartsDrawer.js
View file @
ca28b196
...
...
@@ -7446,10 +7446,16 @@ drawPieChart.prototype =
if
(
this
.
cChartDrawer
.
nDimensionCount
===
3
)
{
this
.
properties3d
=
this
.
cChartDrawer
.
processor3D
.
calculatePropertiesForPieCharts
();
if
(
this
.
cChartDrawer
.
processor3D
.
view3D
.
rAngAx
)
{
this
.
_re
с
alculatePie3D
();
}
else
{
this
.
_re
с
alculatePie3DPerspective
();
}
}
else
{
this
.
_re
с
alculatePie
();
}
...
...
@@ -8332,13 +8338,6 @@ drawPieChart.prototype =
//****fast calulate and drawing(for switch on slow drawing: change name function _Slow)
_re
с
alculatePie3D
:
function
()
{
if
(
!
this
.
cChartDrawer
.
processor3D
.
view3D
.
rAngAx
)
{
this
.
_re
с
alculatePie3D2
();
return
;
}
var
trueWidth
=
this
.
chartProp
.
trueWidth
;
var
trueHeight
=
this
.
chartProp
.
trueHeight
;
...
...
@@ -8378,7 +8377,7 @@ drawPieChart.prototype =
},
_re
с
alculatePie3D
2
:
function
()
_re
с
alculatePie3D
Perspective
:
function
()
{
var
numCache
=
this
.
_getFirstRealNumCache
();
var
sumData
=
this
.
cChartDrawer
.
_getSumArray
(
numCache
,
true
);
...
...
@@ -8391,12 +8390,13 @@ drawPieChart.prototype =
var
widthCanvas
=
this
.
chartProp
.
widthCanvas
;
var
heightCanvas
=
this
.
chartProp
.
heightCanvas
;
var
height
=
heightCanvas
-
(
top
+
bottom
)
/*this.properties3d.depth*/
;
var
height
=
heightCanvas
-
(
top
+
bottom
);
var
width
=
widthCanvas
-
(
left
+
right
);
var
angle
=
this
.
cChartDrawer
.
processor3D
.
angleOy
;
var
tempDepth
=
this
.
cChartDrawer
.
processor3D
.
depthPerspective
;
var
x1
=
left
,
y1
=
top
+
height
,
z1
=
0
;
var
x2
=
left
,
y2
=
top
,
z2
=
0
;
var
x3
=
left
+
width
,
y3
=
top
,
z3
=
0
;
...
...
@@ -8407,9 +8407,6 @@ drawPieChart.prototype =
var
x7
=
left
+
width
,
y7
=
top
,
z7
=
tempDepth
;
var
x8
=
left
+
width
,
y8
=
top
+
height
,
z8
=
tempDepth
;
var
angle
=
this
.
cChartDrawer
.
processor3D
.
angleOy
;
//this.cChartDrawer.processor3D.angleOy = 0;
var
point1
=
this
.
cChartDrawer
.
_convertAndTurnPoint
(
x1
,
y1
,
z1
);
var
point2
=
this
.
cChartDrawer
.
_convertAndTurnPoint
(
x2
,
y2
,
z2
);
var
point3
=
this
.
cChartDrawer
.
_convertAndTurnPoint
(
x3
,
y3
,
z3
);
...
...
@@ -8426,53 +8423,11 @@ drawPieChart.prototype =
var
center3D1
=
new
Point3D
(
x2
+
((
x3
-
x2
)
/
2
),
y2
,
z2
+
(
radius3D1
));
var
center3D2
=
new
Point3D
(
x1
+
((
x4
-
x1
)
/
2
),
y1
,
z1
+
(
radius3D2
));
var
pointCenter1
=
this
.
cChartDrawer
.
_convertAndTurnPoint
(
center3D1
.
x
,
center3D1
.
y
,
center3D1
.
z
);
var
pointCenter2
=
this
.
cChartDrawer
.
_convertAndTurnPoint
(
center3D2
.
x
,
center3D2
.
y
,
center3D2
.
z
);
var
pxToMm
=
this
.
chartProp
.
pxToMM
;
var
pathH
=
this
.
chartProp
.
pathH
;
var
pathW
=
this
.
chartProp
.
pathW
;
/*var path = new Path();
path.pathH = pathH;
path.pathW = pathW;
var gdLst = [];
gdLst["w"] = 1;
gdLst["h"] = 1;
path.moveTo(point1.x / pxToMm * pathW, point1.y / pxToMm * pathH);
path.lnTo(point2.x / pxToMm * pathW, point2.y / pxToMm * pathH);
path.lnTo(point3.x / pxToMm * pathW, point3.y / pxToMm * pathH);
path.lnTo(point4.x / pxToMm * pathW, point4.y / pxToMm * pathH);
path.lnTo(point1.x / pxToMm * pathW, point1.y / pxToMm * pathH);
path.moveTo(point5.x / pxToMm * pathW, point5.y / pxToMm * pathH);
path.lnTo(point6.x / pxToMm * pathW, point6.y / pxToMm * pathH);
path.lnTo(point7.x / pxToMm * pathW, point7.y / pxToMm * pathH);
path.lnTo(point8.x / pxToMm * pathW, point8.y / pxToMm * pathH);
path.lnTo(point5.x / pxToMm * pathW, point5.y / pxToMm * pathH);
path.moveTo(point1.x / pxToMm * pathW, point1.y / pxToMm * pathH);
path.lnTo(point5.x / pxToMm * pathW, point5.y / pxToMm * pathH);
path.moveTo(point2.x / pxToMm * pathW, point2.y / pxToMm * pathH);
path.lnTo(point6.x / pxToMm * pathW, point6.y / pxToMm * pathH);
path.moveTo(point3.x / pxToMm * pathW, point3.y / pxToMm * pathH);
path.lnTo(point7.x / pxToMm * pathW, point7.y / pxToMm * pathH);
path.moveTo(point4.x / pxToMm * pathW, point4.y / pxToMm * pathH);
path.lnTo(point8.x / pxToMm * pathW, point8.y / pxToMm * pathH);
path.recalculate(gdLst);
this.paths.test = path;*/
//TEST DRAW FRAME
//this._calculateTestFrame(point1, point2, point3, point4, point5, point6, point7, point8);
var
radius11
=
Math
.
abs
((
point3
.
x
-
point2
.
x
)
/
2
);
var
radius12
=
Math
.
abs
((
point6
.
y
-
point2
.
y
)
/
2
);
...
...
@@ -8484,97 +8439,44 @@ drawPieChart.prototype =
var
trueWidth
=
this
.
chartProp
.
trueWidth
;
var
trueHeight
=
this
.
chartProp
.
trueHeight
;
var
numCache
=
this
.
_getFirstRealNumCache
();
var
sumData
=
this
.
cChartDrawer
.
_getSumArray
(
numCache
,
true
);
var
radius
=
Math
.
min
(
trueHeight
,
trueWidth
)
/
2
;
if
(
radius
<
0
)
{
radius
=
0
;
}
var
xCenter
=
this
.
chartProp
.
chartGutter
.
_left
+
trueWidth
/
2
;
var
yCenter
=
this
.
chartProp
.
chartGutter
.
_top
+
trueHeight
/
2
;
var
startAngle
=
this
.
cChartDrawer
.
processor3D
.
angleOy
?
this
.
cChartDrawer
.
processor3D
.
angleOy
:
0
;
//var startAngle3D = startAngle !== 0 && startAngle !== undefined ? this._changeAngle(radius, Math.PI/2, startAngle, pointCenter1.x, pointCenter1.y, depth, radius11, radius12) : 0;
//var startAngle3D2 = startAngle !== 0 && startAngle !== undefined ? this._changeAngle(radius, Math.PI/2, startAngle, pointCenter2.x, pointCenter2.y, depth, radius21, radius22) : 0;
startAngle
=
startAngle
+
Math
.
PI
/
2
;
var
newStartAngle
=
startAngle
;
var
xC3D
=
pointCenter1
.
x
;
var
yC3D
=
pointCenter1
.
y
;
var
angles
=
this
.
_calculateAngles3D
(
xCenter
,
(
Math
.
abs
(
point6
.
y
-
point2
.
y
)
/
2
+
point6
.
y
),
radius11
,
radius12
,
radius3D1
,
center3D1
);
var
angles1
=
this
.
_calculateAngles3D
(
xCenter
,
(
Math
.
abs
(
point5
.
y
-
point1
.
y
)
/
2
+
point5
.
y
),
radius21
,
radius22
,
radius3D2
,
center3D2
);
var
xCenter1
=
this
.
chartProp
.
chartGutter
.
_left
+
trueWidth
/
2
;
var
yCenter1
=
Math
.
abs
(
point6
.
y
-
point2
.
y
)
/
2
+
point6
.
y
;
//radiusUp1, radiusUp2, radiusDown1, radiusDown2, startAngle1, swapAngle1, startAngle2, swapAngle2, depth, xCenter, yCenter
var
center1
=
{
x
:
this
.
chartProp
.
chartGutter
.
_left
+
trueWidth
/
2
,
y
:
Math
.
abs
(
point6
.
y
-
point2
.
y
)
/
2
+
point6
.
y
};
var
center2
=
{
x
:
this
.
chartProp
.
chartGutter
.
_left
+
trueWidth
/
2
,
y
:
Math
.
abs
(
point5
.
y
-
point1
.
y
)
/
2
+
point5
.
y
};
var
angles1
=
this
.
_calculateAngles3D
(
center1
.
x
,
center1
.
y
,
radius11
,
radius12
,
radius3D1
,
center3D1
);
var
angles2
=
this
.
_calculateAngles3D
(
center2
.
x
,
center2
.
y
,
radius21
,
radius22
,
radius3D2
,
center3D2
);
if
(
!
this
.
paths
.
series
)
{
this
.
paths
.
series
=
[];
}
for
(
var
i
=
0
;
i
<
angles
.
length
;
i
++
)
for
(
var
i
=
0
;
i
<
angles
1
.
length
;
i
++
)
{
var
path
=
new
Path
();
path
.
pathH
=
pathH
;
path
.
pathW
=
pathW
;
var
start
=
angles
[
i
].
start
;
var
swap
=
angles
[
i
].
swap
;
if
(
i
===
angles
.
length
-
1
)
{
var
end
=
angles
[
0
].
start
+
2
*
Math
.
PI
;
swap
=
end
-
start
;
}
var
start1
=
angles1
[
i
].
start
;
var
swap1
=
angles1
[
i
].
swap
;
var
start
=
angles1
[
i
].
start
;
var
swap
=
angles1
[
i
].
swap
;
var
start1
=
angles2
[
i
].
start
;
var
swap1
=
angles2
[
i
].
swap
;
if
(
i
===
angles1
.
length
-
1
)
{
var
end1
=
angles1
[
0
].
start
+
2
*
Math
.
PI
;
swap1
=
end1
-
start1
;
}
var
end
=
angles1
[
0
].
start
+
2
*
Math
.
PI
;
angles1
[
i
].
swap
=
end
-
start
;
var
xC
=
pointCenter1
.
x
;
var
yC
=
pointCenter1
.
y
;
var
xC1
=
pointCenter2
.
x
;
var
yC1
=
pointCenter2
.
y
;
var
paths
=
this
.
_calculateSegment3D2
(
radius11
,
radius12
,
radius21
,
radius22
,
start
,
swap
,
start1
,
swap1
,
depth
,
xCenter
,
(
Math
.
abs
(
point6
.
y
-
point2
.
y
)
/
2
+
point6
.
y
),
xCenter
,
(
Math
.
abs
(
point5
.
y
-
point1
.
y
)
/
2
+
point5
.
y
),
pointCenter1
,
pointCenter2
);
/*var radiusSpec = (radius11 * radius12) / Math.sqrt(Math.pow(radius12, 2) * Math.pow((Math.cos(start)), 2) + Math.pow(radius11, 2) * Math.pow(Math.sin(start),2));
//var radiusSpec2 = (radius11 * radius2) / Math.sqrt(Math.pow(radius2, 2) * Math.pow((Math.cos(endAng)), 2) + Math.pow(radius11, 2) * Math.pow(Math.sin(endAng),2));
var xC = xCenter;
var yC = yCenter + depth/2;
var x1 = (xC + radiusSpec*Math.cos(start));
var y1 = (yC - radiusSpec*Math.sin(start));
path.moveTo(xC3D / pxToMm * pathW, yC3D / pxToMm * pathH);
path.lnTo(x1 / pxToMm * pathW, y1 / pxToMm * pathH);
path.arcTo(Math.abs(radius11) / pxToMm * pathW, Math.abs(radius12) / pxToMm * pathH, -1 * start*cToDeg, -1 * swap*cToDeg);
path.lnTo(xC3D / pxToMm * pathW, yC3D / pxToMm * pathH);
var
end1
=
angles2
[
0
].
start
+
2
*
Math
.
PI
;
angles2
[
i
].
swap
=
end1
-
start1
;
}
path.recalculate(gdLst);*/
var
paths
=
this
.
_calculateSegment3D2
(
radius11
,
radius12
,
radius21
,
radius22
,
angles1
[
i
],
angles2
[
i
],
center1
,
center2
,
pointCenter1
,
pointCenter2
);
if
(
!
this
.
paths
.
series
[
angles
.
length
-
i
-
1
])
if
(
!
this
.
paths
.
series
[
angles
1
.
length
-
i
-
1
])
{
this
.
paths
.
series
[
angles
.
length
-
i
-
1
]
=
[];
this
.
paths
.
series
[
angles
1
.
length
-
i
-
1
]
=
[];
}
this
.
paths
.
series
[
angles
.
length
-
i
-
1
].
push
(
paths
);
this
.
paths
.
series
[
angles
1
.
length
-
i
-
1
].
push
(
paths
);
}
},
...
...
@@ -9173,8 +9075,11 @@ drawPieChart.prototype =
return
path
;
},
_calculateSegment3D2
:
function
(
radiusUp1
,
radiusUp2
,
radiusDown1
,
radiusDown2
,
startAngle1
,
swapAngle1
,
startAngle2
,
swapAngle2
,
depth
,
xCenter
,
yCenter
,
xCenter1
,
yCenter1
,
pointCenter1
,
pointCenter2
)
_calculateSegment3D2
:
function
(
radiusUp1
,
radiusUp2
,
radiusDown1
,
radiusDown2
,
angles1
,
angles2
,
center1
,
center2
,
pointCenter1
,
pointCenter2
)
{
var
xCenter
=
center1
.
x
,
yCenter
=
center1
.
y
,
xCenter1
=
center2
.
x
,
yCenter1
=
center2
.
y
;
var
startAngle1
=
angles1
.
start
,
swapAngle1
=
angles1
.
swap
,
startAngle2
=
angles2
.
start
,
swapAngle2
=
angles2
.
swap
;
var
pxToMm
=
this
.
chartProp
.
pxToMM
;
var
pathH
=
this
.
chartProp
.
pathH
;
var
pathW
=
this
.
chartProp
.
pathW
;
...
...
@@ -9184,7 +9089,6 @@ drawPieChart.prototype =
gdLst
[
"
w
"
]
=
1
;
gdLst
[
"
h
"
]
=
1
;
var
getNewPath
=
function
()
{
var
path
=
new
Path
();
...
...
@@ -9227,6 +9131,7 @@ drawPieChart.prototype =
var
tempStartAng
=
Math
.
round
(
startAng
*
100
)
/
100
;
var
tempEndAng
=
Math
.
round
(
endAng
*
100
)
/
100
;
var
tempPI
=
Math
.
round
(
Math
.
PI
*
100
)
/
100
;
if
(
tempStartAng
<
-
2
*
tempPI
&&
tempEndAng
>
-
2
*
tempPI
)
{
res
.
push
({
angle
:
-
2
*
Math
.
PI
});
...
...
@@ -9316,7 +9221,7 @@ drawPieChart.prototype =
var
path
=
getNewPath
();
var
endAng
=
startAng
+
swapAng
;
//
var p = getSegmentPoints(startAng, endAng);
var
p
=
getSegmentPoints
(
startAng
,
endAng
);
var
radiusSpec
=
(
radiusDown1
*
radiusDown2
)
/
Math
.
sqrt
(
Math
.
pow
(
radiusDown2
,
2
)
*
Math
.
pow
((
Math
.
cos
(
startAng
)),
2
)
+
Math
.
pow
(
radiusDown1
,
2
)
*
Math
.
pow
(
Math
.
sin
(
startAng
),
2
));
//var radiusSpec2 = (radius11 * radius2) / Math.sqrt(Math.pow(radius2, 2) * Math.pow((Math.cos(endAng)), 2) + Math.pow(radius11, 2) * Math.pow(Math.sin(endAng),2))
...
...
@@ -9339,7 +9244,6 @@ drawPieChart.prototype =
var
arrAngles
=
breakAng
(
startAngle1
,
swapAngle1
);
var
arrAngles2
=
breakAng
(
startAngle2
,
swapAngle2
);
var
frontPath
=
[];
//frontPath.push(calculateFrontFace(startAngle1, swapAngle1, startAngle2, swapAngle2));
for
(
var
i
=
1
;
i
<
arrAngles
.
length
;
i
++
)
{
var
start
=
arrAngles
[
i
-
1
].
angle
;
...
...
@@ -9368,11 +9272,8 @@ drawPieChart.prototype =
var
downPath
=
null
;
var
downPath
=
calculateDownFace
(
startAngle2
,
swapAngle2
);
//this.angleFor3D += swAng;
return
{
frontPath
:
frontPath
,
upPath
:
upPath
,
insidePath
:
insidePath
,
downPath
:
downPath
};
},
...
...
@@ -9490,6 +9391,48 @@ drawPieChart.prototype =
}
}
}
},
_calculateTestFrame
:
function
(
point1
,
point2
,
point3
,
point4
,
point5
,
point6
,
point7
,
point8
)
{
var
pxToMm
=
this
.
chartProp
.
pxToMM
;
var
pathH
=
this
.
chartProp
.
pathH
;
var
pathW
=
this
.
chartProp
.
pathW
;
var
path
=
new
Path
();
path
.
pathH
=
pathH
;
path
.
pathW
=
pathW
;
var
gdLst
=
[];
gdLst
[
"
w
"
]
=
1
;
gdLst
[
"
h
"
]
=
1
;
path
.
moveTo
(
point1
.
x
/
pxToMm
*
pathW
,
point1
.
y
/
pxToMm
*
pathH
);
path
.
lnTo
(
point2
.
x
/
pxToMm
*
pathW
,
point2
.
y
/
pxToMm
*
pathH
);
path
.
lnTo
(
point3
.
x
/
pxToMm
*
pathW
,
point3
.
y
/
pxToMm
*
pathH
);
path
.
lnTo
(
point4
.
x
/
pxToMm
*
pathW
,
point4
.
y
/
pxToMm
*
pathH
);
path
.
lnTo
(
point1
.
x
/
pxToMm
*
pathW
,
point1
.
y
/
pxToMm
*
pathH
);
path
.
moveTo
(
point5
.
x
/
pxToMm
*
pathW
,
point5
.
y
/
pxToMm
*
pathH
);
path
.
lnTo
(
point6
.
x
/
pxToMm
*
pathW
,
point6
.
y
/
pxToMm
*
pathH
);
path
.
lnTo
(
point7
.
x
/
pxToMm
*
pathW
,
point7
.
y
/
pxToMm
*
pathH
);
path
.
lnTo
(
point8
.
x
/
pxToMm
*
pathW
,
point8
.
y
/
pxToMm
*
pathH
);
path
.
lnTo
(
point5
.
x
/
pxToMm
*
pathW
,
point5
.
y
/
pxToMm
*
pathH
);
path
.
moveTo
(
point1
.
x
/
pxToMm
*
pathW
,
point1
.
y
/
pxToMm
*
pathH
);
path
.
lnTo
(
point5
.
x
/
pxToMm
*
pathW
,
point5
.
y
/
pxToMm
*
pathH
);
path
.
moveTo
(
point2
.
x
/
pxToMm
*
pathW
,
point2
.
y
/
pxToMm
*
pathH
);
path
.
lnTo
(
point6
.
x
/
pxToMm
*
pathW
,
point6
.
y
/
pxToMm
*
pathH
);
path
.
moveTo
(
point3
.
x
/
pxToMm
*
pathW
,
point3
.
y
/
pxToMm
*
pathH
);
path
.
lnTo
(
point7
.
x
/
pxToMm
*
pathW
,
point7
.
y
/
pxToMm
*
pathH
);
path
.
moveTo
(
point4
.
x
/
pxToMm
*
pathW
,
point4
.
y
/
pxToMm
*
pathH
);
path
.
lnTo
(
point8
.
x
/
pxToMm
*
pathW
,
point8
.
y
/
pxToMm
*
pathH
);
path
.
recalculate
(
gdLst
);
this
.
paths
.
test
=
path
;
}
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment