Загрузка данных


public draw(target: CanvasRenderingTarget2D): void {
  const data = this.ray.getRenderData();

  if (!data) {
    return;
  }

  const { colors } = getThemeStore();

  target.useBitmapCoordinateSpace(({ context, horizontalPixelRatio, verticalPixelRatio }) => {
    const pixelRatio = Math.max(horizontalPixelRatio, verticalPixelRatio);

    const startX = data.startPoint.x * horizontalPixelRatio;
    const startY = data.startPoint.y * verticalPixelRatio;
    const directionX = data.directionPoint.x * horizontalPixelRatio;
    const directionY = data.directionPoint.y * verticalPixelRatio;
    const endX = data.rayEndPoint.x * horizontalPixelRatio;
    const endY = data.rayEndPoint.y * verticalPixelRatio;

    context.save();

    context.lineWidth = UI.lineWidth * pixelRatio;
    context.strokeStyle = data.lineColor;
    context.beginPath();
    context.moveTo(startX, startY);
    context.lineTo(endX, endY);
    context.stroke();

    if (data.showHandles) {
      context.fillStyle = colors.chartBackground;
      context.strokeStyle = data.lineColor;
      context.lineWidth = UI.handleBorderWidth * pixelRatio;

      drawHandle(context, startX, startY, UI.handleRadius * pixelRatio);
      drawHandle(context, directionX, directionY, UI.handleRadius * pixelRatio);
    }

    context.restore();
  });
}