【发布时间】:2014-06-24 19:38:26
【问题描述】:
我有一个简单的问题。我是 Java 2D API 的新手,所以我的问题是:
是否可以手动设置在paintComponent()中绘制的东西的优先级?
【问题讨论】:
标签: java graphics 2d paintcomponent java-2d
我有一个简单的问题。我是 Java 2D API 的新手,所以我的问题是:
是否可以手动设置在paintComponent()中绘制的东西的优先级?
【问题讨论】:
标签: java graphics 2d paintcomponent java-2d
你画的第一件事将是最远的。所以
public void paintComponent(Graphics g) {
g.drawRect(10, 10, 80, 30); // Drawn in back
g.drawRect(20, 20, 70, 40); // Drawn in middle
g.drawRect(10, 10, 10, 10); // Drawn in front
...
}
【讨论】:
如果你告诉 Java 先画一些东西,它会先被画出来,你在上面画的任何东西都会被画在你画的第一个东西上。
【讨论】:
您不能指定优先级,但可以指定绘制每个对象的顺序(在顺序代码中)。 Here 就是一个例子。
public void paint(Graphics screen) {
sortByDepth(screen);
backFaceCulling(screen);
applyProjection(screen);
drawCube(screen);
}
以下书籍可以提供很大帮助:Introduction to Computer Graphics Using Java 2D and 3D。此外,如果你想画这样的东西,你可能想看看Visible Surface Determination:
另见:
【讨论】: