UNPKG

sigma

Version:

A JavaScript library dedicated to graph drawing.

33 lines (32 loc) 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function drawEdgeLabel(context, edgeData, sourceData, targetData, settings) { var size = settings.edgeLabelSize, font = settings.edgeLabelFont, weight = settings.edgeLabelWeight, label = edgeData.label; context.fillStyle = edgeData.color; context.font = weight + " " + size + "px " + font; var textWidth = context.measureText(label).width; var cx = (sourceData.x + targetData.x) / 2; var cy = (sourceData.y + targetData.y) / 2; var dx = targetData.x - sourceData.x; var dy = targetData.y - sourceData.y; var d = Math.sqrt(dx * dx + dy * dy); var angle; if (dx > 0) { if (dy > 0) angle = Math.acos(dx / d); else angle = Math.asin(dy / d); } else { if (dy > 0) angle = Math.acos(dx / d) + Math.PI; else angle = Math.asin(dx / d) + Math.PI / 2; } context.save(); context.translate(cx, cy); context.rotate(angle); context.fillText(label, -textWidth / 2, edgeData.size / 2 + size); context.restore(); } exports.default = drawEdgeLabel;