arow method
dynamic
arow(
- dynamic point1,
- dynamic point2,
- dynamic distance,
- dynamic length,
- dynamic data,
Implementation
arow(point1, point2, distance, length, data) {
// slope is dx/dy
var dx = point2[0] - point1[0];
var dy = point2[1] - point1[1];
// var v_norm = Math.sqrt(dx ** 2 + dy ** 2)
var v_norm = sqrt(pow(dx, 2) + pow(dy, 2));
// point on line at distance
var point_on_line = [
point2[0] - (distance * dx) / v_norm,
point2[1] - (distance * dy) / v_norm
];
// endpoints of arrows at length above point (the distance from the original line
var point_below = [
point_on_line[0] - (length * -dy) / v_norm,
point_on_line[1] - (length * dx) / v_norm
];
var point_above = [
point_on_line[0] + (length * -dy) / v_norm,
point_on_line[1] + (length * dx) / v_norm
];
data.addAll([
[
"moveTo",
[point_above[0], point_above[1]]
],
[
"lineTo",
[point2[0], point2[1]]
],
[
"lineTo",
[point_below[0], point_below[1]]
]
]);
}