diff --git a/.idea/gradle.xml b/.idea/gradle.xml index ac6b0ae..23a89bb 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -15,6 +15,7 @@ diff --git a/app/src/main/java/de/hems/trafficsim/Renderer.java b/app/src/main/java/de/hems/trafficsim/Renderer.java index 5b274a5..14b1bf8 100644 --- a/app/src/main/java/de/hems/trafficsim/Renderer.java +++ b/app/src/main/java/de/hems/trafficsim/Renderer.java @@ -74,8 +74,10 @@ public class Renderer { synchronized (holder) { int y = 0; int left = 0; - int compensate = 0; - float vCompensate = 0; + int hCompensateStart = 0; + int hCompensateEnd = 0; + int vCompensateStart = 0; + int vCompensateEnd = 0; canvas.drawColor(Color.BLACK); for (int curStepIdx = this.track.getVtrList().size()-1;curStepIdx >= 0; curStepIdx--) { @@ -85,17 +87,18 @@ public class Renderer { } catch (InterruptedException ex) { return; } - vCompensate = Math.round(y * this.tooShortPerHeight); + vCompensateStart = Math.round(y * this.tooShortPerHeight); + vCompensateEnd = Math.round((y+this.pixelPerLine) * this.tooShortPerHeight); stepRecords = this.track.getVtrList().get(curStepIdx); int i = 0; for (VehicleTimeRecord r : stepRecords) { left = (int) (this.pixelPerVehicle * r.getPosition()); - compensate = Math.round(r.getPosition() * this.tooShortPerTrackLength); - + hCompensateStart = Math.round(r.getPosition() * this.tooShortPerTrackLength); + hCompensateEnd = Math.round((r.getPosition() + this.pixelPerVehicle) * this.tooShortPerTrackLength); this.paint.setColor(getColor(r.getVelocity(), r.getMaxVelocity())); - canvas.drawRect(left + compensate, y+vCompensate, - left + this.pixelPerVehicle + compensate, - y + pixelPerLine + vCompensate, this.paint); + canvas.drawRect(left + hCompensateStart, y+vCompensateStart, + left + this.pixelPerVehicle + hCompensateEnd, + y + pixelPerLine + vCompensateEnd, this.paint); i++; } track.getListSemaphore().release();