From 6fa96eeb877e8fba99514519c124a306bc902a99 Mon Sep 17 00:00:00 2001 From: Avior Date: Sat, 6 Aug 2022 01:17:14 +0200 Subject: [PATCH] fix: Add missing utils file --- .../com/dzeio/charts/utils/CanvasUtils.kt | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 charts/src/main/java/com/dzeio/charts/utils/CanvasUtils.kt diff --git a/charts/src/main/java/com/dzeio/charts/utils/CanvasUtils.kt b/charts/src/main/java/com/dzeio/charts/utils/CanvasUtils.kt new file mode 100644 index 0000000..242e8df --- /dev/null +++ b/charts/src/main/java/com/dzeio/charts/utils/CanvasUtils.kt @@ -0,0 +1,49 @@ +package com.dzeio.charts.utils + +import android.graphics.Canvas +import android.graphics.Paint +import kotlin.math.sqrt + +fun Canvas.drawDottedLine( + startX: Float, + startY: Float, + endX: Float, + endY: Float, + spacing: Float, + paint: Paint +) { + //calculate line length + val length = if (endX - startX == 0f) { + // just length of Y + endY - startY + } else if (endY - startY == 0f) { + // just length of X + endX - startX + } else { + // calculate using the Pythagorean theorem + sqrt((startX + endX) * (startX + endX) + (startY + endY) * (startY + endY)) + } + + val lineCount = (length / spacing).toInt() + + val lenX = endX - startX + val lenY = endY - startY + +// Log.d("DrawDottedLine", "----------- Start -----------") +// Log.d("DrawDottedLine", "lenX: $lenX, lenY: $lenY") + for (line in 0 until lineCount) { + if (line % 2 == 0) { + continue + } + + val sx = lenX / lineCount * line + startX + val sy = lenY / lineCount * line + startY + val ex = lenX / lineCount * (line + 1) + startX + val ey = lenY / lineCount * (line + 1) + startY +// Log.d("DrawDottedLine", "$sx, $sy, $ex, $ey") + this.drawLine(sx, sy, ex, ey, paint) + // line + // total line startX, endX, startY, endY + // total line length + } +} \ No newline at end of file