mirror of
https://github.com/chartjs/Chart.js.git
synced 2025-12-08 20:36:08 +00:00
parent
14df2c6722
commit
b76dd46d72
@ -164,11 +164,11 @@ function pointsFromSegments(boundary, line) {
|
|||||||
const first = linePoints[segment.start];
|
const first = linePoints[segment.start];
|
||||||
const last = linePoints[segment.end];
|
const last = linePoints[segment.end];
|
||||||
if (y !== null) {
|
if (y !== null) {
|
||||||
points.push({x: first.x, y});
|
points.push({x: first.x, y, _prop: 'x', _ref: first});
|
||||||
points.push({x: last.x, y});
|
points.push({x: last.x, y, _prop: 'x', _ref: last});
|
||||||
} else if (x !== null) {
|
} else if (x !== null) {
|
||||||
points.push({x, y: first.y});
|
points.push({x, y: first.y, _prop: 'y', _ref: first});
|
||||||
points.push({x, y: last.y});
|
points.push({x, y: last.y, _prop: 'y', _ref: last});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return points;
|
return points;
|
||||||
@ -184,6 +184,7 @@ function getTarget(source) {
|
|||||||
const boundary = computeBoundary(source);
|
const boundary = computeBoundary(source);
|
||||||
let points = [];
|
let points = [];
|
||||||
let _loop = false;
|
let _loop = false;
|
||||||
|
let _refPoints = false;
|
||||||
|
|
||||||
if (boundary instanceof simpleArc) {
|
if (boundary instanceof simpleArc) {
|
||||||
return boundary;
|
return boundary;
|
||||||
@ -194,8 +195,15 @@ function getTarget(source) {
|
|||||||
points = boundary;
|
points = boundary;
|
||||||
} else {
|
} else {
|
||||||
points = pointsFromSegments(boundary, line);
|
points = pointsFromSegments(boundary, line);
|
||||||
|
_refPoints = true;
|
||||||
}
|
}
|
||||||
return points.length ? new Line({points, options: {tension: 0}, _loop, _fullLoop: _loop}) : null;
|
return points.length ? new Line({
|
||||||
|
points,
|
||||||
|
options: {tension: 0},
|
||||||
|
_loop,
|
||||||
|
_fullLoop: _loop,
|
||||||
|
_refPoints
|
||||||
|
}) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function resolveTarget(sources, index, propagate) {
|
function resolveTarget(sources, index, propagate) {
|
||||||
@ -264,6 +272,17 @@ function _segments(line, target, property) {
|
|||||||
const tpoints = target.points;
|
const tpoints = target.points;
|
||||||
const parts = [];
|
const parts = [];
|
||||||
|
|
||||||
|
if (target._refPoints) {
|
||||||
|
// Update properties from reference points. (In case those points are animating)
|
||||||
|
for (let i = 0, ilen = tpoints.length; i < ilen; ++i) {
|
||||||
|
const point = tpoints[i];
|
||||||
|
const prop = point._prop;
|
||||||
|
if (prop) {
|
||||||
|
point[prop] = point._ref[prop];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (let segment of line.segments) {
|
for (let segment of line.segments) {
|
||||||
const bounds = getBounds(property, points[segment.start], points[segment.end], segment.loop);
|
const bounds = getBounds(property, points[segment.start], points[segment.end], segment.loop);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user