Добавлено ограничение области вывода в GraphicsExt

This commit is contained in:
Victor 2014-03-02 19:31:11 +02:00
parent 50226ed4eb
commit cc5eeb00b9

View File

@ -32,6 +32,10 @@ public class GraphicsExt {
clip = null;
}
public void setClip(Clip clip) {
this.clip = clip;
}
public void clip(double x, double y, double width, double height) {
if (clip != null) clip.setClip(x, y, width, height);
else clip = new Clip(x, y, width, height);
@ -80,8 +84,13 @@ public class GraphicsExt {
public void line(Point from, Point to) {
double[] p1 = transformMatrix.applyTransform(from.getVector3());
double[] p2 = transformMatrix.applyTransform(to.getVector3());
if (clip != null) {
double[] coords = clip.clip(p1[0], p1[1], p2[0], p2[1]);
g.drawLine(convertX(coords[0]), convertY(coords[1]), convertX(coords[2]), convertY(coords[3]));
} else {
g.drawLine(convertX(p1[0]), convertY(p1[1]), convertX(p2[0]), convertY(p2[1]));
}
}
private int convertX(double x) {
return (int) (x * (width / X_MAX) + 0.5d);