import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.geom.*;
class Point {
private int x;
private int y;
public Point(){
x=0;
y=0;
}
public Point(int xx,int yy){
x=xx;
y=yy;
}
public void setPint(int xx,int yy){
x=xx;
y=yy;
}
public int getX(){
return x;
}
public int getY(){
return y;
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.setColor(Color.blue);
double u=0.1;
int Sqr=10;
//Point P,Q,S,R;
Point[][] points=new Point[4][4];
points[0][0]=new Point(100,100);
points[0][1]= new Point(300,100);
points[0][2]= new Point(100,300);
points[0][3]= new Point(300,300);
g2.drawLine(points[0][0].getX(), points[0][0].getY(), points[0][1].getX(), points[0][1].getY());
g2.drawLine(points[0][3].getX(), points[0][3].getY(), points[0][1].getX(), points[0][1].getY());
g2.drawLine(points[0][2].getX(), points[0][2].getY(), points[0][3].getX(), points[0][3].getY());
g2.drawLine(points[0][0].getX(), points[0][0].getY(), points[0][2].getX(), points[0][2].getY());
//points[0][0]=P;
//points[0][1]=Q;
//points[0][2]=S;
//points[0][3]=R;
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
//points[i][j]=new Point();
points[i+1][j].setPint((int)((1-u)* points[i][j].getX()+ u * points[i][j+1].getX()),(int) ((1-u) * points[i][j].getY()+ u * points[i][j+1].getY()));
}
// for(int line=0;line<4;line++){
// g2.drawLine(points[i][line].getX(),points[i][line].getY(),points[i][line+1].getX(),points[i][line+1].getY());
// }
}
// System.out.println("#####");
// System.out.println(points[0][0].getX());
// System.out.println(points[0][0].getY());
// System.out.println("#####");
//
//P1.setPint((int) ((1-u)*P.getX()+ u* Q.getX()), (int) ((1-u)*P.getY()+ u* Q.getY()));
//Q1.setPint((int) ((1-u)*Q.getX()+ u* R.getX()), (int) ((1-u)*Q.getY()+ u* R.getY()));
//R1.setPint((int) ((1-u)*R.getX()+ u* S.getX()), (int) ((1-u)*R.getY()+ u* S.getY()));
//S1.setPint((int) ((1-u)*S.getX()+ u* P.getX()), (int) ((1-u)*S.getY()+ u* P.getY()));
//
//g2.drawLine(points[0][0].getX(), points[0][0].getY(), points[0][1].getX(), points[0][1].getY());
//g2.drawLine(points[0][1].getX(), points[0][1].getY(), points[0][3].getX(), points[0][3].getY());
//g2.drawLine(points[0][3].getX(), points[0][3].getY(), points[0][2].getX(), points[0][2].getY());
//g2.drawLine(points[0][2].getX(), points[0][2].getY(), points[0][0].getX(), points[0][0].getY());
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Hello2DPanel.paintComponent(Hello2D.java:78) at javax.swing.JComponent.paint(JComponent.java:1056) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JLayeredPane.paint(JLayeredPane.java:586) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5217) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579) at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502) at javax.swing.RepaintManager.paint(RepaintManager.java:1272) at javax.swing.JComponent.paint(JComponent.java:1042) at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39) at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:79) at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:116) at java.awt.Container.paint(Container.java:1975) at javax.swing.RepaintManager$4.run(RepaintManager.java:842) at javax.swing.RepaintManager$4.run(RepaintManager.java:814) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738) at javax.swing.RepaintManager.access$1200(RepaintManager.java:64) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at Hello2DPanel.paintComponent(Hello2D.java:78) at javax.swing.JComponent.paint(JComponent.java:1056) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JLayeredPane.paint(JLayeredPane.java:586) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5217) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579) at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502) at javax.swing.RepaintManager.paint(RepaintManager.java:1272) at javax.swing.JComponent.paint(JComponent.java:1042) at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39) at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:79) at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:116) at java.awt.Container.paint(Container.java:1975) at javax.swing.RepaintManager$4.run(RepaintManager.java:842) at javax.swing.RepaintManager$4.run(RepaintManager.java:814) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738) at javax.swing.RepaintManager.access$1200(RepaintManager.java:64) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
To draw a square and then draw a second square within the first reduced in size by the parameter u and so on
P1x = ((1 - u) * Px) + (u * Qx)
P1y = ((1 - u) * Py) + (u * Qy)
similarly for Q,R,S
note: without using Cos and Sin or advanced triangle equations.
Where is the wrong??