@@ -61,36 +61,34 @@ export function getInterpolateKernel(
6161 const graphColor = graphPixels[this.thread.y][this.thread.x];
6262
6363 if (
64- (
65- lineDist <= lineThickness + 1 &&
66- x <= Math.max(x1, x2) + (lineThickness + 1) * lineSine &&
67- x >= Math.min(x1, x2) - (lineThickness + 1) * lineSine &&
68- y <= Math.max(y1, y2) + (lineThickness + 1) * lineCosine &&
69- y >= Math.min(y1, y2) - (lineThickness + 1) * lineCosine
70- )
64+ lineDist >= lineThickness &&
65+ lineDist <= lineThickness + 1 &&
66+ x <= Math.max(x1, x2) + (lineThickness) * lineSine &&
67+ x >= Math.min(x1, x2) - (lineThickness) * lineSine &&
68+ y <= Math.max(y1, y2) + (lineThickness) * lineCosine &&
69+ y >= Math.min(y1, y2) - (lineThickness) * lineCosine
7170 ) {
72- let intensity = 0;
73-
74- // The following code basically blurs the line by convolving a simple average kernel
75- // Very crude implementation of https://developer.nvidia.com/gpugems/gpugems2/part-iii-high-quality-rendering/chapter-22-fast-prefiltered-lines
76- for (let i = x - 1; i <= x + 1; i++) {
77- for (let j = y - 1; j <= y + 1; j++) {
78- let lineEqn = i * (y1 - y2) - x1 * (y1 - y2) - j * (x1 - x2) + y1 * (x1 - x2);
79- let lineDist = Math.abs(lineEqn) / Math.sqrt((y1 - y2) * (y1 - y2) + (x1 - x2) * (x1 - x2));
80-
81- intensity += (1 / 9) * Math.min(
82- 1,
83- Math.floor(lineThickness / lineDist)
84- )
85- }
86- }
71+ let intensity = Math.max(0, 1 - (lineDist - lineThickness));
8772
8873 return [
8974 lineColor[0] * intensity + graphColor[0] * (1 - intensity),
9075 lineColor[1] * intensity + graphColor[1] * (1 - intensity),
9176 lineColor[2] * intensity + graphColor[2] * (1 - intensity)
9277 ]
9378 }
79+ else if (
80+ lineDist < lineThickness &&
81+ x <= Math.max(x1, x2) + (lineThickness) * lineSine &&
82+ x >= Math.min(x1, x2) - (lineThickness) * lineSine &&
83+ y <= Math.max(y1, y2) + (lineThickness) * lineCosine &&
84+ y >= Math.min(y1, y2) - (lineThickness) * lineCosine
85+ ) {
86+ return [
87+ lineColor[0],
88+ lineColor[1],
89+ lineColor[2]
90+ ]
91+ }
9492 else return graphColor;
9593 }` ,
9694 {
0 commit comments