我想打开库,因为目前我想查看用于绘图的算法,修改它们并在我的程序中实现它们。例如:我尝试自己为线条创建一个算法。但我失败了。即使我成功了,我担心它可能不会给出与库中的算法相同的结果。我不希望这种情况发生。这就是为什么我想复制用于库中方法的算法。我真的希望这将帮助我创建我目前正在使用的应用程序以及将来与其他应用程序一起使用。
我试图用代码编辑器打开库。但是我很难找到这些库——我真的不知道它们放在哪里,也不知道它们的代码存储在哪些文件中。
如何打开一个Java库?或者网上有没有上传代码的地方?
听起来您想要的是进入标准 Java 库(这样您就可以看到类似方法的代码Graphics.drawLine()
)。
如果您使用的是 Windows 或 Linux,您可以从获得 JDK 的同一位置下载源文件。对于 Mac,请参阅此问题。您甚至可以设置 Eclipse,以便您可以调试该源代码,就好像它是您自己的代码一样。
但是,您可能不会在这些库中找到 Java 中的线条绘制代码 - Graphics 实现几乎肯定会使用本机方法,并且可能只是调用操作系统中的现有方法。
如果您专门寻找线条绘制算法,另一种选择是查看 Wikipedia 页面的Bresenham(锯齿)或Wu(抗锯齿)算法。
编辑:
Graphics2D 调用中实际将像素放在屏幕上的部分可能在系统调用内部,因此源将不可用。
像Batik这样的 java 矢量图形库可能有其中一些算法的源代码,但可能依赖于大多数算法的 Graphics2D 调用。因此,您可能会寻找用 Java 以外的语言编写的综合矢量图形库,其中这些图形调用默认情况下尚不存在。
或者,检查计算机图形书籍的目录可能会指出您可以在 Wikipedia 上查找的各种算法。
对于任何给定的库:
至于要使用什么绘图算法,有很多不同的算法(显然,人们多年来一直在尝试快速绘图),最好的办法是弄清楚你需要做什么,然后搜索特定的需要分开。除了维基百科之外,实际上并没有一个很好的存储库。
如果您正在使用它们在您的类路径中的库。查看如何在您使用的任何 IDE 中找出您的类路径,您可以找到您所依赖的 JAR。如果它们与源打包在一起,您只需解压缩它们并查看源。
如果您无权访问源代码,则可以使用Java Decompiler获取代码。
如果您正在尝试查看标准 Java 库,请参阅有关将源代码获取到 JDK 的其他答案。
如果您对开源库(例如由 Apache 项目维护的东西)感兴趣,请在项目站点上查找可以使用标准 zip 实用程序打开的“源 jar”。
如果你想要的库不是开源的或者你找不到它的源代码,你可以尝试反编译它。如果您使用的是 Eclipse,请试试这个反编译器。