Como fazer a conversão de sombras em 2D em Java?

Atualmente, estou tentando implementar um método de conversão de sombras 2D em Java, seguindo este tutorial:http://ncase.me/sight-and-light/

Eu quero manter os objetos Line2D e Polygon. Aqui está a parte principal do meu código até agora:

 for (Polygon p : Quads.polygons) {
        for (int i = 0; i < p.npoints; i++) {
            osgCtx.setStroke(new BasicStroke(0.1f));
            Line2D line = new Line2D.Double(mousePos.getX(), mousePos.getY(), p.xpoints[i], p.ypoints[i]);
            osgCtx.draw(line);
        }
        osgCtx.setStroke(new BasicStroke(1.0f));
        osgCtx.draw(p);
    }

O que dá um resultado disso:

Fico confuso quando se trata de construir a forma paramétrica das linhas. Não sei como implementar a matemática com os métodos de Java. Alguém poderia me apontar na direção certa, em termos de código, para implementar isso?

questionAnswers(2)

yourAnswerToTheQuestion