我目前正在尝试按照本教程在 Java 中实现 2D 阴影投射方法:http : //ncase.me/sight-and-light/
我想坚持使用 Line2D 和 Polygon 对象。到目前为止,这是我代码的主要部分:
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);
}
这给出了这样的结果:
当涉及到构建线条的参数形式时,我感到困惑。我不知道如何用 Java 的方法来实现数学。有人可以在代码方面为我指出正确的方向来实现这一点吗?
目前尚不清楚您的实际问题是什么。在进行此类图形编程时,您经常需要一些操作,而 Java2D 的内置功能在这里相当简陋。您可以创建
Point2D
和Line2D
对象,基本上都结构提供你所需要的,但一些计算是...不方便(至少可以这样说),以及一些不正确的所有支持。例如,您只能检查两个对象是否Line2D
相交。但没有内置的方法来检查哪里它们相交。然而,当我看到你链接的网站时,我想,“嘿,那可能很有趣”。
它WAS乐趣:-)
我想您可能会遇到的大多数问题都由下面的代码隐含地回答(对不起,如果评论不够 - 但请随意提出有关不清楚的部分的更集中的问题)。
由于上述原因,我开始创建一个小型的“常用几何操作实用程序”库。这个库中的一些类部分包含在下面的示例中,因此它是一个独立的示例。