From fbe6081d5de1ddee6aed7abdb3b8393012e50f0a Mon Sep 17 00:00:00 2001 From: dsavvinov Date: Fri, 26 Aug 2016 14:46:59 +0300 Subject: [PATCH] UI: Updated drawing of algorithm info --- car_srv/kotlinSrv/build.gradle | 2 +- .../control/emulator/ControllerEmulator.kt | 2 +- .../main/java/algorithm/AbstractAlgorithm.kt | 2 +- ui/index.html | 2 +- ui/scripts/drawing.js | 37 ++++++++++++------- 5 files changed, 27 insertions(+), 18 deletions(-) diff --git a/car_srv/kotlinSrv/build.gradle b/car_srv/kotlinSrv/build.gradle index 2c9746fc79e..6865180f631 100644 --- a/car_srv/kotlinSrv/build.gradle +++ b/car_srv/kotlinSrv/build.gradle @@ -26,7 +26,7 @@ sourceSets { task copyKotlinLib(type: Copy) { from "${projectDir}/kotlinJsRequiredFiles/kotlin.js" - from "${projectDir}/kotlinJsRequiredFiles/package.json" + from "${projectDir}/package.json" into "${projectDir}/build/js" } diff --git a/car_srv/kotlinSrv/src/control/emulator/ControllerEmulator.kt b/car_srv/kotlinSrv/src/control/emulator/ControllerEmulator.kt index f108012cb97..679ce1f9a5b 100644 --- a/car_srv/kotlinSrv/src/control/emulator/ControllerEmulator.kt +++ b/car_srv/kotlinSrv/src/control/emulator/ControllerEmulator.kt @@ -123,7 +123,7 @@ class ControllerEmulator : Controller { continue } val currentDistance = Math.round(Math.sqrt(Math.pow(xIntersection - xSensor0, 2.0) - + Math.pow(yIntersection - ySensor0, 2.0))) + + Math.pow(yIntersection - ySensor0, 2.0)) * 1000000); if (currentDistance < result) { result = currentDistance } diff --git a/server/src/main/java/algorithm/AbstractAlgorithm.kt b/server/src/main/java/algorithm/AbstractAlgorithm.kt index 5938ef7522d..5416aff28d9 100644 --- a/server/src/main/java/algorithm/AbstractAlgorithm.kt +++ b/server/src/main/java/algorithm/AbstractAlgorithm.kt @@ -58,7 +58,7 @@ abstract class AbstractAlgorithm(val thisCar: Car, val exchanger: Exchanger
-
+
diff --git a/ui/scripts/drawing.js b/ui/scripts/drawing.js index 319cabc8c93..b1c6345c072 100644 --- a/ui/scripts/drawing.js +++ b/ui/scripts/drawing.js @@ -34,6 +34,21 @@ function drawCar(carPosition) { ctx.fill(); } +function drawLine(line) { + var begin_x = 0; + var begin_y = (line.A * (0 - zero.x) + line.C) / line.B + zero.y; + + var end_x = canvas.width; + var end_y = (line.A * (canvas.width - zero.x) + line.C) / line.B + zero.y; + + ctx.beginPath(); + ctx.moveTo(begin_x, begin_y); + ctx.lineTo(end_x, end_y); + ctx.strokeStyle = foundColour; + ctx.closePath(); + ctx.stroke(); +} + function drawSegment(segment, colour) { console.log("Drawing segment from (" + segment.begin.x + ", " + segment.begin.y + ") to (" + segment.end.x + ", " + segment.end.y + ")") ctx.beginPath(); @@ -87,6 +102,8 @@ function createLine(A, B, C) { } function drawDebug(data) { + ctx.clearRect(0, 0, canvas.width, canvas.height); + // Parse protobuf into geometry primitives var foundLines = []; for (var i = 0; i < data.A.length; i++) { @@ -110,15 +127,7 @@ function drawDebug(data) { y: 0 }; - var foundSegments = []; - for (var i = 0; i < foundLines.length - 1; ++i) { - var curLine = foundLines[i]; - var nextLine = foundLines[i + 1]; - - var intersectionPoint = intersectLines(curLine, nextLine); - foundSegments.push(createSegment(lastPoint, intersectionPoint)); - lastPoint = intersectionPoint; - } + var referenceSegments = []; var corners = []; @@ -140,13 +149,13 @@ function drawDebug(data) { referenceSegments.push(createSegment(corners[corners.length - 1], corners[0])); // draw everything + console.log("Drawing car position"); drawCar(carPosition); - - console.log("Drawing foundSegments") - for (var i = 0; i < foundSegments.length; ++i) { - drawSegment(foundSegments[i], foundColour); - } + console.log("Drawing found Lines"); + for (var i = 0; i < foundLines.length; ++i) { + drawLine(foundLines[i]); + } console.log("Drawing referenceSegments") for (var i = 0; i < referenceSegments.length; ++i) { drawSegment(referenceSegments[i], referenceColour);