public abstract void drawPicture(Picture source, int dx1, int dy1, int cx1, int cy1, int cx2, int cy2);
/** fill a trapezoid whose top and bottom edges are horizontal */
- public abstract void fillJSTrapezoid(int x1, int x2, int y1, int x3, int x4, int y2, int color);
+ public abstract void fillTrapezoid(int x1, int x2, int y1, int x3, int x4, int y2, int color);
/**
* Same as drawPicture, but only uses the alpha channel of the Picture, and is allowed to destructively modify the RGB
if (y1 > y2) { int t = x1; x1 = x2; x2 = t; t = y1; y1 = y2; y2 = t; }
if (x1 == x2) {
- fillJSTrapezoid(x1 - w / 2, x2 + w / 2, y1 - (capped ? w / 2 : 0), x1 - w / 2, x2 + w / 2, y2 + (capped ? w / 2 : 0), color);
+ fillTrapezoid(x1 - w / 2, x2 + w / 2, y1 - (capped ? w / 2 : 0), x1 - w / 2, x2 + w / 2, y2 + (capped ? w / 2 : 0), color);
return;
}
int last_x = x1;
for(int y=y1; y<=y2; y++) {
int new_x = (int)((float)(y - y1) / slope) + x1;
- if (slope >= 0) fillJSTrapezoid(last_x + 1, y != y2 ? new_x + 1 : new_x, y,
+ if (slope >= 0) fillTrapezoid(last_x + 1, y != y2 ? new_x + 1 : new_x, y,
last_x + 1, y != y2 ? new_x + 1 : new_x, y + 1, color);
- else fillJSTrapezoid(y != y2 ? new_x : new_x + 1, last_x, y,
+ else fillTrapezoid(y != y2 ? new_x : new_x + 1, last_x, y,
y != y2 ? new_x : new_x + 1, last_x, y + 1, color);
last_x = new_x;
}
y2 += width * Math.sin(phi);
}
- fillJSTrapezoid(x1 + dx, x1 + dx, y1 - dy, x1 - dx, x1 - dx + slice, y1 + dy, color); // top corner
- fillJSTrapezoid(x2 + dx - slice, x2 + dx, y2 - dy, x2 - dx, x2 - dx, y2 + dy, color); // bottom corner
- fillJSTrapezoid(x1 - dx, x1 - dx + slice, y1 + dy, x2 + dx - slice, x2 + dx, y2 - dy, color); // middle
+ fillTrapezoid(x1 + dx, x1 + dx, y1 - dy, x1 - dx, x1 - dx + slice, y1 + dy, color); // top corner
+ fillTrapezoid(x2 + dx - slice, x2 + dx, y2 - dy, x2 - dx, x2 - dx, y2 + dy, color); // bottom corner
+ fillTrapezoid(x1 - dx, x1 - dx + slice, y1 + dy, x2 + dx - slice, x2 + dx, y2 - dy, color); // middle
}
}