Computer Graphics Lab Report
Computer Graphics Lab Report
import [Link].*;
import [Link];
import [Link];
class D1 extends JFrame implements ActionListener { JLabel l1, l2, l3, l4;
Graphics g;
D1() {
[Link](800, 700);
[Link]([Link]);
[Link](null);
l1 = new JLabel("X1:");
t1 = new JTextField();
l2 = new JLabel("Y1:");
t2 = new JTextField();
l3 = new JLabel("X2:");
t3 = new JTextField();
l4 = new JLabel("Y2:");
t4 = new JTextField();
1
[Link](100, 130, 100, 25);
[Link](this);
[Link](l1);
[Link](t1);
[Link](l2);
[Link](t2);
[Link](l3);
[Link](t3);
[Link](l4);
[Link](t4);
[Link](btn);
[Link](true);
g = [Link]();
@Override
int x0 = [Link]([Link]());
int y0 = [Link]([Link]());
int x1 = [Link]([Link]());
int y1 = [Link]([Link]());
int dx = x1 - x0;
int dy = y1 - y0;
float x = x0;
float y = y0;
y += yincrement;
new D1();
Output:
3
2. BLA Algorithm
import [Link].*;
import [Link].*;
import [Link];
import [Link];
class BLALineAlgorithm extends JFrame implements ActionListener { JLabel l1, l2, l3, l4;
Graphics g;
BLALineAlgorithm() {
[Link](800, 700);
[Link](null);
[Link]([Link]);
l1 = new JLabel("X1:");
t1 = new JTextField();
l2 = new JLabel("Y1:");
t2 = new JTextField();
l3 = new JLabel("X2:");
t3 = new JTextField();
l4 = new JLabel("Y2:");
t4 = new JTextField();
4
[Link](100, 130, 100, 25);
[Link](this);
[Link](l1);
[Link](t1);
[Link](l2);
[Link](t2);
[Link](l3);
[Link](t3);
[Link](l4);
[Link](t4);
[Link](btn);
[Link](true);
g = [Link]();
@Override
int x0 = [Link]([Link]());
int y0 = [Link]([Link]());
int x1 = [Link]([Link]());
int y1 = [Link]([Link]());
p0 = 2 * dy - dx;
if (p0 >= 0) {
yn = yn + sy;
p0 = p0 + 2 * (dy - dx);
} else {
p0 = p0 + 2 * dy;
}}}
else {
p0 = 2 * dx - dy;
if (p0 >=0) {
xn = xn + sx;
yn = yn + sy;
yn = yn + sy;
p0 = p0 + 2 * dx;
}}}}
new BLALineAlgorithm();
Output:
6
3. General Circle Drawing Algorithm
import [Link].*;
import [Link].*;
import [Link].*;
Graphics g;
GCD() {
l1 = new JLabel("h:");
[Link](l1);
t1 = new JTextField();
[Link](t1);
l2 = new JLabel("k:");
[Link](l2);
t2 = new JTextField();
[Link](t2);
l3 = new JLabel("r:");
[Link](l3);
t3 = new JTextField();
[Link](t3);
7
[Link](this);
[Link](btn);
[Link](800, 700);
[Link](null);
[Link](true);
g = [Link]();
@Override
int h = [Link]([Link]());
int k = [Link]([Link]());
int r = [Link]([Link]());
int xk = r;
int yk = 0;
[Link](xk + h, yk + k, 2, 2);
[Link](yk + h, xk + k, 2, 2);
[Link](-xk + h, yk + k, 2, 2);
[Link](-yk + h, xk + k, 2, 2);
xk = xk - 1;
new GCD();
8
}
Output:
9
[Link] Circle Algorithm Program
import [Link].*;
import [Link];
import [Link].*;
Graphics g;
MidpointCircle() {
l1 = new JLabel("h:");
add(l1);
t1 = new JTextField();
add(t1);
l2 = new JLabel("k:");
add(l2);
t2 = new JTextField();
add(t2);
l3 = new JLabel("r:");
[Link](l3);
t3 = new JTextField();
[Link](t3);
10
[Link](this);
[Link](btn);
[Link](600, 700);
[Link](null);
[Link](true);
g = [Link]();
@Override
int h = [Link]([Link]());
int k = [Link]([Link]());
int r = [Link]([Link]());
int xk = 0;
int yk = r;
int pk = 1 - r;
[Link](xk + h, yk + k, 2, 2);
[Link](yk + h, xk + k, 2, 2);
[Link](-xk + h, yk + k, 2, 2);
[Link](-yk + h, xk + k, 2, 2);
break;
xk = xk + 1;
if (pk >= 0) {
11
yk = yk - 1;
pk = pk + 2 * (xk - yk) + 1;
else {
pk = pk + 2 * xk + 1;
new MidpointCircle();
Output:
12
[Link]
import [Link].*;
import [Link].*;
import [Link];
import [Link];
Graphics g;
Translation() {
[Link]("11211/20 - 2D Translation");
[Link](800, 700);
[Link](null);
[Link]([Link]);
t1 = new JTextField();
l2 = new JLabel("Y1:");
t2 = new JTextField();
l3 = new JLabel("X2:");
t3 = new JTextField();
l4 = new JLabel("Y2:");
t4 = new JTextField();
l5 = new JLabel("tx:");
t5 = new JTextField();
l6 = new JLabel("ty:");
t6 = new JTextField();
13
[Link](10, 50, 80, 25);
[Link](this);
[Link](l1);
[Link](t1);
[Link](l2);
[Link](t2);
[Link](l3);
[Link](t3);
[Link](l4);
[Link](t4);
[Link](l5);
[Link](t5);
[Link](l6);
[Link](t6);
[Link](btn);
[Link](true);
g = [Link]();
@Override
int y1 = [Link]([Link]());
int x2 = [Link]([Link]());
int y2 = [Link]([Link]());
int tx = [Link]([Link]());
int ty = [Link]([Link]());
finalMatrix[i][j] = 0;
new Translation();
Output:
15
[Link] a Java Program to demonstrate 2D scaling
import [Link].*;
import [Link].*;
import [Link];
import [Link];
Graphics g;
Scaling() {
[Link]("11211/20 -- Scaling");
[Link](800, 700);
[Link](null);
[Link]([Link]);
l1 = new JLabel("X1:");
t1 = new JTextField();
l2 = new JLabel("Y1:");
t2 = new JTextField();
l3 = new JLabel("X2:");
t3 = new JTextField();
l4 = new JLabel("Y2:");
t4 = new JTextField();
l5 = new JLabel("sx:");
t5 = new JTextField();
l6 = new JLabel("sy:");
t6 = new JTextField();
16
[Link](10, 50, 80, 25);
[Link](this);
[Link](l1);
[Link](t1);
[Link](l2);
[Link](t2);
[Link](l3);
[Link](t3);
[Link](l4);
[Link](t4);
[Link](l5);
[Link](t5);
[Link](l6);
[Link](t6);
[Link](btn);
[Link](true);
@Override
int x1 = [Link]([Link]());
17
int y1 = [Link]([Link]());
int x2 = [Link]([Link]());
int y2 = [Link]([Link]());
int sx = [Link]([Link]());
int sy = [Link]([Link]());
finalMatrix[i][j] = 0;
}}}
g = [Link]();
new Scaling();
}}
Output:
18
[Link] to demonstrate 2D Rotation
import [Link].*;
import [Link].*;
import [Link];
import [Link];
Graphics g;
Rotation() {
[Link]("2D Rotation");
[Link](800, 700);
[Link](null);
[Link](JFrame.EXIT_ON_CLOSE);
l1 = new JLabel("X1:");
t1 = new JTextField();
l2 = new JLabel("Y1:");
t2 = new JTextField();
l3 = new JLabel("X2:");
t3 = new JTextField();
l4 = new JLabel("Y2:");
t4 = new JTextField();
l5 = new JLabel("Angle:");
t5 = new JTextField();
19
[Link](10, 90, 80, 25);
[Link](this);
[Link](l1);
[Link](t1);
[Link](l2);
[Link](t2);
[Link](l3);
[Link](t3);
[Link](l4);
[Link](t4);
[Link](l5);
[Link](t5);
[Link](btn);
[Link](true);
g = [Link]();
double[][] rotationVector = {{[Link](rad), -[Link](rad), 0}, {[Link](rad), [Link](rad), 0}, {0, 0, 1}};
finalMatrix[i][j] = 0;
double[][] rotationVector = {{[Link](rad), -[Link](rad), 0}, {[Link](rad), [Link](rad), 0}, {0, 0, 1}};
finalMatrix[i][j] = 0;
@Override
int x1 = [Link]([Link]());
int y1 = [Link]([Link]());
int x2 = [Link]([Link]());
int y2 = [Link]([Link]());
counterClockWise(orgMatrix, rad);
clockWise(orgMatrix, -rad);
new Rotation();
Output:
22
[Link] to demonstrate 2D Reflection in X axis
import [Link].*;
import [Link].*;
import [Link];
import [Link];
public class Refx extends JFrame implements ActionListener { JLabel l1, l2, l3, l4;
Graphics g;
Refx() {
[Link](800, 700);
[Link](null);
[Link](JFrame.EXIT_ON_CLOSE);
l1 = new JLabel("X1:");
t1 = new JTextField();
l2 = new JLabel("Y1:");
t2 = new JTextField();
l3 = new JLabel("X2:");
t3 = new JTextField();
l4 = new JLabel("Y2:");
t4 = new JTextField();
23
[Link](100, 130, 100, 25);
[Link](this);
[Link](l1);
[Link](t1);
[Link](l2);
[Link](t2);
[Link](l3);
[Link](t3);
[Link](l4);
[Link](t4);
[Link](btn);
tempMatrix[i][j] = 0;
}}}
return tempMatrix;
@Override
int x1 = [Link]([Link]());
int y1 = [Link]([Link]());
int x2 = [Link]([Link]());
24
int y2 = [Link]([Link]());
reflectedMatrix[i][j] = 0;
}}}
new Refx();
}}
Output:
25
[Link] to demonstrate 2D Reflection in Y axis.
import [Link].*;
import [Link].*;
import [Link];
import [Link];
public class Refy extends JFrame implements ActionListener { JLabel l1, l2, l3, l4;
Graphics g;
public Refy() {
[Link](800, 700);
[Link](null);
[Link](JFrame.EXIT_ON_CLOSE);
l1 = new JLabel("X1:");
t1 = new JTextField();
l2 = new JLabel("Y1:");
t2 = new JTextField();
l3 = new JLabel("X2:");
t3 = new JTextField();
l4 = new JLabel("Y2:");
t4 = new JTextField();
26
[Link](100, 130, 100, 25);
[Link](this);
[Link](l1);
[Link](t1);
[Link](l2);
[Link](t2);
[Link](l3);
[Link](t3);
[Link](l4);
[Link](t4);
[Link](btn);
[Link](true);
g = [Link]();
tempMatrix[i][j] = 0;
}}
return tempMatrix;}
@Override
int x1 = [Link]([Link]());
int y1 = [Link]([Link]());
int x2 = [Link]([Link]());
27
int y2 = [Link]([Link]());
}}}
new Refy();
}}
Output:
28
10. WAP to demonstrate 2D Reflection in Reflection in origin.
import [Link].*;
import [Link].*;
import [Link];
import [Link];
public class RefO extends JFrame implements ActionListener { JLabel l1, l2, l3, l4, l5, l6;
Graphics g;
RefO() {
[Link](800, 700);
[Link](null);
[Link](JFrame.EXIT_ON_CLOSE);
l1 = new JLabel("X1:");
t1 = new JTextField();
l2 = new JLabel("Y1:");
t2 = new JTextField();
l3 = new JLabel("X2:");
t3 = new JTextField();
l4 = new JLabel("Y2:");
t4 = new JTextField();
l5 = new JLabel("X3:");
t5 = new JTextField();
l6 = new JLabel("Y3:");
t6 = new JTextField();
29
[Link](100, 50, 100, 25);
[Link](this);
[Link](l1);
[Link](t1);
[Link](l2);
[Link](t2);
[Link](l3);
[Link](t3);
[Link](l4);
[Link](t4);
[Link](l5);
[Link](t5);
[Link](l6);
[Link](t6);
[Link](btn);
[Link](true);
g = [Link]();}
tempMatrix[i][j] = 0;
}}
return tempMatrix;}
@Override
int x1 = [Link]([Link]());
int y1 = [Link]([Link]());
int x2 = [Link]([Link]());
int y2 = [Link]([Link]());
int x3 = [Link]([Link]());
int y3 = [Link]([Link]());
int[][] orgMatrix = {{x1, x2, x3}, {y1, y2, y3}, {1, 1, 1}};
reflectedMatrix[i][j] = 0;
}}
new RefO();
Output:
32
11. WAP to demonstrate 2D Reflection in Reflection in Y=X
import [Link].*;
import [Link].*;
import [Link];
import [Link];
public class Refyequalsx extends JFrame implements ActionListener { JLabel l1, l2, l3, l4, l5, l6;
Graphics g;
Refyequalsx() {
[Link](700, 700);
[Link](null);
[Link](JFrame.EXIT_ON_CLOSE);
l1 = new JLabel("X1:");
t1 = new JTextField();
l2 = new JLabel("Y1:");
t2 = new JTextField();
l3 = new JLabel("X2:");
t3 = new JTextField();
l4 = new JLabel("Y2:");
t4 = new JTextField();
l5 = new JLabel("X3:");
t5 = new JTextField();
l6 = new JLabel("Y3:");
t6 = new JTextField();
[Link](this);
33
[Link](10, 50, 80, 25);
[Link](l1);
[Link](t1);
[Link](l2);
[Link](t2);
[Link](l3);
[Link](t3);
[Link](l4);
[Link](t4);
[Link](l5);
[Link](t5);
[Link](l6);
[Link](t6);
[Link](btn);
[Link](true);
g = [Link]();
temp[i][j] = 0;
}}}
return temp;
@Override
int x1 = [Link]([Link]());
int y1 = [Link]([Link]());
int x2 = [Link]([Link]());
int y2 = [Link]([Link]());
int x3 = [Link]([Link]());
int y3 = [Link]([Link]());
int[][] orgMatrix = {{x1, x2, x3}, {y1, y2, y3}, {1, 1, 1}};
finalMatrix[i][j] = 0;
}}
35
x1 = finalMatrix[0][0];
y1 = finalMatrix[1][0];
x2 = finalMatrix[0][1];
y2 = finalMatrix[1][1];
x3 = finalMatrix[0][2];
y3 = finalMatrix[1][2];
x1 = translatedMatrix[0][0];
y1 = translatedMatrix[1][0];
x2 = translatedMatrix[0][1];
y2 = translatedMatrix[1][1];
x3 = translatedMatrix[0][2];
y3 = translatedMatrix[1][2];
new Refyequalsx();
}}
Output:
36
[Link] to demonstrate 2D reflection in y=mx+c
import [Link].*;
import [Link].*;
import [Link].*;
Graphics g;
reflection_Y_mx() {
[Link](800, 700);
[Link](null);
t1 = new JTextField();
t5 = new JTextField();
l7 = new JLabel("m:");
37
l8_ = new JLabel("c:");
[Link](this);
[Link](l1_);
[Link](t1);
[Link](l2_);
[Link](t2_);
[Link](l3_);
38
[Link](t3_);
[Link](l4_);
[Link](t4_);
[Link](l5_);
[Link](t5);
[Link](l6_);
[Link](t6_);
[Link](l7);
[Link](t7_);
[Link](l8_);
[Link](t8_);
[Link](btn);
[Link](true);
g = [Link]();
tempMatrix[i][j] = 0;
} }}
return tempMatrix;
39
@Override
int x1 = [Link]([Link]());
int y1 = [Link](t2_.getText());
int x2 = [Link](t3_.getText());
int y2 = [Link](t4_.getText());
int x3 = [Link]([Link]());
int y3 = [Link](t6_.getText());
int m = [Link](t7_.getText());
int c = [Link](t8_.getText());
double[][] orgMatrix = {{x1, x2, x3}, {y1, y2, y3}, {1, 1, 1}};
x1 = (int) translatedMatrix[0][0];
y1 = (int) translatedMatrix[1][0];
x2 = (int) translatedMatrix[0][1];
y2 = (int) translatedMatrix[1][1];
x3 = (int) translatedMatrix[0][2];
y3 = (int) translatedMatrix[1][2];
x1 = -(c / m);
40
y2 = c;
double a = m * m - 1;
double b = m * m + 1;
double[][] reflectionVector = {
reflectedMatrix[i][j] = 0;
x1 = (int) finalMatrix[0][0];
y1 = (int) finalMatrix[1][0];
x2 = (int) finalMatrix[0][1];
y2 = (int) finalMatrix[1][1];
x3 = (int) finalMatrix[0][2];
y3 = (int) finalMatrix[1][2];
41
[Link]("After Reflection", 160, 650);
new reflection_Y_mx();
Output:
42
13. WAP to demonstrate Shearing in X.
import [Link].*;
import [Link].*;
import [Link];
static int x1, y1, x2, y2, x3, y3, x4, y4;
int shx = 2;
public Shearing(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) { this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
this.x3 = x3;
this.y3 = y3;
this.x4 = x4;
this.y4 = y4;
@Override
[Link](g);
43
[Link]("After Shearing", px1 - 20, y1 - 20);
[Link]("Enter x1:");
int x1 = [Link]();
[Link]("Enter y1:");
int y1 = [Link]();
[Link]("Enter x2:");
int x2 = [Link]();
[Link]("Enter y2:");
int y2 = [Link]();
[Link]("Enter x3:");
int x3 = [Link]();
[Link]("Enter y3:");
int y3 = [Link]();
[Link]("Enter x4:");
int x4 = [Link]();
[Link]("Enter y4:");
int y4 = [Link]();
Shearing shearing = new Shearing(x1, y1, x2, y2, x3, y3, x4, y4);
[Link](shearing);
[Link]("Shearing in X-axis");
[Link](JFrame.EXIT_ON_CLOSE);
[Link](500, 500);
44
[Link](true);
Input:
Output:
45
14. WAP to demonstrate shearing in xy
import [Link].*;
import [Link].*;
import [Link];
static int x1, y1, x2, y2, x3, y3, x4, y4;
int shx = 2;
public Shearingxy(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
{ this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
this.x3 = x3;
this.y3 = y3;
this.x4 = x4;
this.y4 = y4;
px1 = x1 + y1 * shx;
px2 = x2 + y2 * shx;
px3 = x3 + y3 * shx;
px4 = x4 + y4 * shx;
@Override
[Link](g);
46
[Link](x4, y4, x1, y1);
[Link]("Enter x1:");
int x1 = [Link]();
[Link]("Enter y1:");
int y1 = [Link]();
[Link]("Enter x2:");
int x2 = [Link]();
[Link]("Enter y2:");
int y2 = [Link]();
[Link]("Enter x3:");
int x3 = [Link]();
[Link]("Enter y3:");
int y3 = [Link]();
[Link]("Enter x4:");
int x4 = [Link]();
[Link]("Enter y4:");
int y4 = [Link]();
Shearingxy = new Shearingxy(x1, y1, x2, y2, x3, y3, x4, y4);
[Link](Shearingxy);
[Link]("Shearing in X-axis");
[Link](JFrame.EXIT_ON_CLOSE);
47
[Link](600, 500);
[Link](true);
Input:
Output:
48
15. Line Clipping (Cohen–Sutherland Algorithm)
import [Link].*;
import [Link].*;
import [Link].*;
Graphics g;
Cohen_Sutherland() {
[Link](800, 700);
[Link](null);
l1 = new JLabel("Xmin:");
t1 = new JTextField();
l2 = new JLabel("Ymin:");
t2 = new JTextField();
l3 = new JLabel("Xmax:");
t3 = new JTextField();
l4 = new JLabel("Ymax:");
t4 = new JTextField();
l5 = new JLabel("X1:");
t5 = new JTextField();
l6 = new JLabel("Y1:");
49
t6 = new JTextField();
l7 = new JLabel("X2:");
t7 = new JTextField();
l8 = new JLabel("Y2:");
t8 = new JTextField();
[Link](this);
[Link](l1);
[Link](t1);
[Link](l2);
[Link](t2);
[Link](l3);
[Link](t3);
50
[Link](l4);
add(t4);
[Link](l5);
[Link](t5);
[Link](l6);
[Link](t6);
[Link](l7);
[Link](t7);
[Link](l8);
[Link](t8);
[Link](btn);
[Link](true);
g = [Link]();
code |= LEFT;
code |= RIGHT;
code |= BOTTOM;
code |= TOP;
return code;
@Override
x_min = [Link]([Link]());
y_min = [Link]([Link]());
51
x_max = [Link]([Link]());
y_max = [Link]([Link]());
double x1 = [Link]([Link]());
double y1 = [Link]([Link]());
double x2 = [Link]([Link]());
double y2 = [Link]([Link]());
while (true) {
accept = true;
break;
break;
else {
int code_out;
double x = 0, y = 0;
if (code1 != 0) {
code_out = code1;
else {
52
code_out = code2;
y = y_max;
y = y_min;
x = x_max;
x = x_min;
if (code_out == code1) {
x1 = x;
y1 = y;
else {
x2 = x;
y2 = y;
}
53
int tx = 300;
if (accept) {
else {
[Link]("Line is rejected.");
new Cohen_Sutherland();
Output:
54
16. WAP in JAVA program to demonstrate Window to ViewPort Transformation.
import [Link].*;
import [Link];
import [Link];
@Override
[Link](g);
int x1 = 50;
int y1 = 50;
[Link](new WindowViewPort());
55
[Link](true);
Output:
56
17. WAP to demonstrate Translation in 3 dimensional.
import [Link].*;
import [Link].*;
import [Link];
import [Link];
Graphics g;
Translation3D() {
setTitle("3D Translation");
setSize(800, 700);
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
l1 = new JLabel("X");
t1 = new JTextField();
l2 = new JLabel("Y");
t2 = new JTextField();
l3 = new JLabel("Length");
t3 = new JTextField();
l4 = new JLabel("Shift");
t4 = new JTextField();
l5 = new JLabel("tx");
t5 = new JTextField();
l6 = new JLabel("ty");
t6 = new JTextField();
57
[Link](10, 50, 80, 25);
[Link](this);
add(l1);
add(t1);
add(l2);
add(t2);
add(l3);
add(t3);
add(l4);
add(t4);
add(l5);
add(t5);
add(l6);
add(t6);
add(btn);
setVisible(true);
g = [Link]();
return points;
return points;
@Override
int x = [Link]([Link]());
int y = [Link]([Link]());
int tx = [Link]([Link]());
int ty = [Link]([Link]());
[Link]([Link]);
[Link]([Link]);
Output:
60
18. Write a Java program to demonstrate 3D scaling.
import [Link].*;
import [Link].*;
import [Link];
import [Link];
Graphics g;
Scaling3D() {
[Link](" 3D Scaling");
[Link](800, 700);
[Link](null);
[Link](JFrame.EXIT_ON_CLOSE);
l1 = new JLabel("X:");
t1 = new JTextField();
l2 = new JLabel("Y:");
t2 = new JTextField();
l3 = new JLabel("Length:");
t3 = new JTextField();
l4 = new JLabel("Shift:");
t4 = new JTextField();
l5 = new JLabel("sx:");
t5 = new JTextField();
l6 = new JLabel("sy:");
t6 = new JTextField();
[Link](this);
[Link](l1);
[Link](t1);
[Link](l2);
[Link](t2);
[Link](l3);
[Link](t3);
[Link](l4);
[Link](t4);
[Link](l5);
[Link](t5);
[Link](l6);
[Link](t6);
[Link](btn);
[Link](true);
g = [Link]();
return points;
return points;
int x1 = points[0].x;
int y1 = points[0].y;
int x2 = points[1].x;
int y2 = points[1].y;
int x3 = points[2].x;
int y3 = points[2].y;
63
int x4 = points[3].x;
int y4 = points[3].y;
return points;
Point[] drawCubeTwoPointsAfterScaling(int x, int y, int length, int shift, int sx, int sy) {
int x1 = points[0].x;
int y1 = points[0].y;
int x2 = points[1].x;
int y2 = points[1].y;
int x3 = points[2].x;
int y3 = points[2].y;
int x4 = points[3].x;
int y4 = points[3].y;
return points;
64
}
@Override
int x = [Link]([Link]());
int y = [Link]([Link]());
int sx = [Link]([Link]());
int sy = [Link]([Link]());
cubeTwoPoints[i].y);
sy);
[Link](finalCubeOnePoints[i].x, finalCubeOnePoints[i].y,
finalCubeTwoPoints[i].x, finalCubeTwoPoints[i].y);
new Scaling3D();
65
}
Output:
66
19. WAP to demonstrate 3D Rotation.
import [Link].*;
import [Link].*;
import [Link];
import [Link];
Graphics g;
Rotation3D() {
[Link]("3D Rotation");
[Link](800, 700);
[Link](null);
[Link](JFrame.EXIT_ON_CLOSE);
l1 = new JLabel("X:");
t1 = new JTextField();
l2 = new JLabel("Y:");
t2 = new JTextField();
l3 = new JLabel("Length:");
t3 = new JTextField();
l4 = new JLabel("Shift:");
t4 = new JTextField();
l5 = new JLabel("Angle:");
t5 = new JTextField();
67
[Link](10, 90, 80, 25);
[Link](this);
[Link](l1);
[Link](t1);
[Link](l2);
[Link](t2);
[Link](l3);
[Link](t3);
[Link](l4);
[Link](t4);
[Link](l5);
[Link](t5);
[Link](btn);
[Link](true);
g = [Link]();
return points;
}
68
Point[] getCubeTwoPoints(int x, int y, int length, int shift) {
return points;
int[][] orgMatrix = {
{1, 1, 1, 1}
};
double[][] rotationVector = {
{0, 0, 1}
};
finalMatrix[i][j] = 0;
}
69
int x1 = finalMatrix[0][0];
int y1 = finalMatrix[1][0];
int x2 = finalMatrix[0][1];
int y2 = finalMatrix[1][1];
int x3 = finalMatrix[0][2];
int y3 = finalMatrix[1][2];
int x4 = finalMatrix[0][3];
int y4 = finalMatrix[1][3];
return points;
int[][] orgMatrix = {{newX, newX + length, newX + length, newX},{newY, newY, newY + length, newY +
length},{1, 1, 1, 1}};
finalMatrix[i][j] = 0;
70
finalMatrix[i][j] += rotationVector[i][k] * orgMatrix[k][j];
int x1 = finalMatrix[0][0];
int y1 = finalMatrix[1][0];
int x2 = finalMatrix[0][1];
int y2 = finalMatrix[1][1];
int x3 = finalMatrix[0][2];
int y3 = finalMatrix[1][2];
int x4 = finalMatrix[0][3];
int y4 = finalMatrix[1][3];
return points;
@Override
int x = [Link]([Link]());
int y = [Link]([Link]());
cubeTwoPoints[i].y);
[Link](finalCubeOnePoints[i].x,
finalCubeOnePoints[i].y,
finalCubeTwoPoints[i].x,
finalCubeTwoPoints[i].y
);
-rad);
[Link](
finalCubeOnePointsClockwise[i].x,
finalCubeOnePointsClockwise[i].y,
finalCubeTwoPointsClockwise[i].x,
finalCubeTwoPointsClockwise[i].y
72
);
new Rotation3D();
Output:
73
20. WAP in Java to demonstrate boundary fill algorithm.
import [Link];
import [Link];
import [Link];
import [Link].Graphics2D;
import [Link];
import [Link];
public BoundaryFill() {
setTitle("BoundaryFill");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800, 600);
setVisible(true);
public void boundaryFill(int x, int y, Color fill, Color boundary, WritableRaster raster) {
int[] curColor = [Link](x, y, new int[] { 255, 255, 255, 255 });
[Link](x, y, fillColor);
74
return pix1[0] == pix2[0] && pix1[1] == pix2[1] && pix1[2] == pix2[2] && pix1[3] == pix2[3]; }
@Override
[Link](g);
[Link]([Link]);
[Link](bi, 0, 0, null);
Output:
75
21. WAP to demonstrate Flood fill algorithm.
import [Link].*;
import [Link].*;
import [Link];
import [Link];
import [Link];
[Link](fill);
[Link]();
[Link](true);
});
public FloodFill() {
setMinimumSize(getPreferredSize());
g2 = [Link]();
[Link]([Link]);
[Link]([Link]);
addMouseListener(new MouseAdapter() {
repaint();
76
}
});
@Override
[Link](g);
[Link](image, 0, 0, this);
if (seedX > 0 && seedX < [Link]() - 1 && seedY > 0 && seedY < [Link]() - 1) {
floodFill(seedX - 1, seedY - 1, rgb);
}}}}
Output:
77
22. WAP in JAVA program to demonstrate 2D lines
import [Link].*;
import [Link].*;
Lines() {
[Link](600, 800);
[Link](true);
@Override
[Link](g);
[Link](new BasicStroke(4f));
[Link](new BasicStroke(10f));
[Link](new BasicStroke(1f));
[Link](bs1);
[Link](bs2);
78
[Link](40, 350, 400, 350);
[Link](bs3);
new Lines();
Output:
79
23. WAP in JAVA program to demonstrate text in java.
import [Link].*;
import [Link].*;
@Override
[Link](g);
[Link]([Link]);
int x = 50;
int y = 50;
[Link](text, x, y);
[Link](() -> {
[Link]();
[Link](true);
});
}}
Output:
80