Добавлено ограничение области вывода в GraphicsExt
This commit is contained in:
parent
50226ed4eb
commit
cc5eeb00b9
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user