strokeを使わずに直線を描いてください。
Bresenhamの線描画アルゴリズムを利用。
import processing.core.PApplet;
public class ProcessingApp extends PApplet {
private static final long serialVersionUID = 1L;
@Override
public void draw() {
myline(mouseX, mouseY, width / 2, height / 2);
}
@Override
public void init() {
super.init();
}
@Override
public void setup() {
size(200, 200);
line(0, 0, 200, 200);
}
void myline(int x0, int y0, int x1, int y1) {
int E, x, y;
int dx, dy, sx, sy, i;
sx = (x1 > x0) ? 1 : -1;
dx = (x1 > x0) ? x1 - x0 : x0 - x1;
sy = (y1 > y0) ? 1 : -1;
dy = (y1 > y0) ? y1 - y0 : y0 - y1;
x = x0;
y = y0;
if (dx >= dy) {
E = -dx;
for (i = 0; i <= dx; i++) {
point(x, y);
x += sx;
E += 2 * dy;
if (E >= 0) {
y += sy;
E -= 2 * dx;
}
}
} else {
E = -dy;
for (i = 0; i <= dy; i++) {
point(x, y);
y += sy;
E += 2 * dx;
if (E >= 0) {
x += sx;
E -= 2 * dy;
}
}
}
}
}
Bresenham's line algorithm - Wikipedia, the free encyclopedia
あとで、修整。
コメント