Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- double dx = x2 - x1;
- double dy = y2 - y1;
- //to prevent divide by 0 error
- if (dx == 0) {
- int x = x1;
- int y = y1;
- for (int i = 0; i < dy; i++) {
- y += 1;
- framebuffer.setPixel((int)Math.round(x), (int)Math.round(y), Vec3.one);
- }
- }
- else if (dy == 0) {
- int x = x1;
- int y = y1;
- for (int i = 0; i < dx; i++) {
- x += 1;
- framebuffer.setPixel((int)Math.round(x), (int)Math.round(y), Vec3.one);
- }
- }
- else {
- double m = (double)(dy / dx); //slope
- if ((m <= 1 && m > 0) || (m < 0 && m >= -1)) {
- double x = (double)x1;
- double y = (double)y1;
- for (int i = 0; i < Math.abs(dx); i++) {
- x += 1;
- y += m;
- framebuffer.setPixel((int) Math.round(x), (int) Math.round(y), Vec3.one);
- }
- }
- else {
- double x = (double)x1;
- double y = (double)y1;
- if (y2 < y1) {
- x = (double)x2;
- y = (double)y2;
- }
- for (int i = 0; i < Math.abs(dy); i++) {
- x += (double)(1 / m);
- y += 1;
- framebuffer.setPixel((int) Math.round(x), (int) Math.round(y), Vec3.one);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement