From 8c19accb007f049c299cdf31eeb8a068d67a1a1a Mon Sep 17 00:00:00 2001 From: Robert Monfera Date: Sat, 5 Nov 2016 15:32:41 +0100 Subject: [PATCH] fix high precision projection --- lib/shaders/xform.glsl | 8 ++++---- package.json | 2 +- scatter-fancy.js | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/shaders/xform.glsl b/lib/shaders/xform.glsl index 9770da4..dbac565 100644 --- a/lib/shaders/xform.glsl +++ b/lib/shaders/xform.glsl @@ -1,8 +1,8 @@ #pragma glslify: export(computePosition) vec4 computePosition(vec2 posHi, vec2 posLo, vec2 scHi, vec2 scLo, vec2 trHi, vec2 trLo, vec2 screenScale, vec2 screenOffset) { - return vec4(scHi * posHi + trHi - + scLo * posHi + trLo - + scHi * posLo - + scLo * posLo + return vec4((posHi + trHi) * scHi + + (posLo + trLo) * scHi + + (posHi + trHi) * scLo + + (posLo + trLo) * scLo + screenScale * screenOffset, 0, 1); } \ No newline at end of file diff --git a/package.json b/package.json index d847b71..395387f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gl-scatter2d-fancy", - "version": "1.2.0", + "version": "1.2.1", "description": "Fancy and slow scatter plots", "main": "scatter-fancy.js", "scripts": { diff --git a/scatter-fancy.js b/scatter-fancy.js index ae2563b..7a96a7e 100644 --- a/scatter-fancy.js +++ b/scatter-fancy.js @@ -140,8 +140,8 @@ var proto = GLScatterFancy.prototype var scaleX = 2 * boundX / dataX var scaleY = 2 * boundY / dataY - var translateX = 2 * (bounds[0] - dataBox[0]) / dataX - 1 - var translateY = 2 * (bounds[1] - dataBox[1]) / dataY - 1 + var translateX = (bounds[0] - dataBox[0] - 0.5 * dataX) / boundX + var translateY = (bounds[1] - dataBox[1] - 0.5 * dataY) / boundY SCALE_HI[0] = scaleX SCALE_LO[0] = scaleX - SCALE_HI[0]