为什么面积加减后会出现白线?
Why white line is visible after area addition and subtraction?
这是我的界面
package Tools;
import java.awt.Color;
import java.io.Serializable;
/**
*
* @author DELL-PC
*/
public interface ToolsModel extends Serializable {
public void setColor(Color color);
public Color getColor();
public void setVisible(boolean b);
public boolean isVisible();
public void setID(String id);
public String getID();
public ToolsModel getShape();
}
而且我已经使用此界面并从该界面创建了一些不规则形状,我想在界面上 Add.Subtract 并且它工作正常但有些白色凸起。
这是我的代码,用于在界面上添加、减去。
public void trimShade(ToolsModel toolsModel) {
System.out.println("I am at TrimShade");
Area area = new Area();
for (ToolsModel model : getShadeList()) {
if (model.equals(toolsModel) || model.getID().equals(toolsModel.getID())) {
continue;
}
area.add(new Area((Shape)model));
if (!area.isEmpty()) {
((Area) model).subtract(new Area((Shape)toolsModel));
}
}
}
首先我们在这里绘制多边形不规则形状,然后在第一个形状内绘制下一个形状。
输出结果如下:
如何去除两个区域加减后升高的白线。是第二区的边界之一。
我找到了解决方案,并在评论抗锯齿和质量渲染提示时解决了问题。
//g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
这是我的界面
package Tools;
import java.awt.Color;
import java.io.Serializable;
/**
*
* @author DELL-PC
*/
public interface ToolsModel extends Serializable {
public void setColor(Color color);
public Color getColor();
public void setVisible(boolean b);
public boolean isVisible();
public void setID(String id);
public String getID();
public ToolsModel getShape();
}
而且我已经使用此界面并从该界面创建了一些不规则形状,我想在界面上 Add.Subtract 并且它工作正常但有些白色凸起。
这是我的代码,用于在界面上添加、减去。
public void trimShade(ToolsModel toolsModel) {
System.out.println("I am at TrimShade");
Area area = new Area();
for (ToolsModel model : getShadeList()) {
if (model.equals(toolsModel) || model.getID().equals(toolsModel.getID())) {
continue;
}
area.add(new Area((Shape)model));
if (!area.isEmpty()) {
((Area) model).subtract(new Area((Shape)toolsModel));
}
}
}
首先我们在这里绘制多边形不规则形状,然后在第一个形状内绘制下一个形状。
输出结果如下:
如何去除两个区域加减后升高的白线。是第二区的边界之一。
我找到了解决方案,并在评论抗锯齿和质量渲染提示时解决了问题。
//g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);