1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
| class Point{
double x,y,z;
public Point(double x,double y,double z){
this.x=x;
this.y=y;
this.z=z;
}
};
class OpenGLInterface implements GLEventListener,KeyListener,MouseListener,MouseMotionListener{
private GLCanvas canvas;
public ArrayList<Point> buffer;
public void setAxe(ArrayList<Point> buffer){
this.buffer=(ArrayList<Point>)buffer.clone();
this.canvas.repaint();
}
public OpenGLInterface(GLCanvas canvas){
this.canvas=canvas;
buffer=new ArrayList<Point>(100);
}
public void init(GLDrawable glDrawable){
GL gl=glDrawable.getGL();
gl.glPointSize(4.f);
}
public void display(GLDrawable glDrawable){
GL gl=glDrawable.getGL();
GLU glu=glDrawable.getGLU();
gl.glClearColor(0.f,0.f,0.f,1f);
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
glu.gluPerspective(45,1,1,100);
glu.gluLookAt(0,0,5,0,0,0,0,1,0);
gl.glColor3d(1.,0.,0.);
Point p1=buffer.get(0);
Point p2=buffer.get(1);
Point p3=buffer.get(2);
Point p4=buffer.get(3);
gl.glBegin(GL.GL_QUADS);
gl.glVertex3d(p1.x,p1.y,p1.z);
gl.glVertex3d(p2.x,p2.y,p2.z);
gl.glVertex3d(p3.x,p3.y,p3.z);
gl.glVertex3d(p4.x,p4.y,p4.z);
gl.glEnd();
gl.glFlush();
}
public void reshape(GLDrawable glDrawable,int x,int y,int width,int height){
GL gl=glDrawable.getGL();
GLU glu=glDrawable.getGLU();
gl.glViewport(0,0,width,height);
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
}
public void displayChanged(GLDrawable arg0, boolean arg1, boolean arg2) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseDragged(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseMoved(MouseEvent arg0) {
// TODO Auto-generated method stub
}
/*public void display(GLDrawable arg0) {
// TODO Auto-generated method stub
}*/
}
class Graph{
private class WindowAttribute{
double xMin=0;
double xMax=10;
double yMinr=0;
double yMax=10;
double xStep=1;
double yStep=1;
boolean showAxes=true;
};
GLCanvas canvas;
OpenGLInterface gLInterface;
public Graph(){
canvas=createDefaultCanvas();
gLInterface=createInterface();
}
private GLCanvas createDefaultCanvas(){
Frame frame=new Frame("OpenGL");
GLCanvas canvas1=GLDrawableFactory.getFactory().createGLCanvas(new GLCapabilities());
frame.add(canvas1);
frame.setSize(500,500);
frame.setLocation(400,250);
frame.setBackground(Color.BLUE);
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
frame.setVisible(true);
return canvas1;
}
private OpenGLInterface createInterface(){
OpenGLInterface listener=new OpenGLInterface(canvas);
canvas.addGLEventListener(listener);
canvas.addKeyListener(listener);
canvas.addMouseListener(listener);
canvas.addMouseMotionListener(listener);
return listener;
}
public StringBuffer ReadEquation(){
return new StringBuffer("");
}
public void setWindowAttribute(WindowAttribute wa){
}
public void drawAxes(){
ArrayList<Point> xAxe=new ArrayList<Point>(4);
Point p1=new Point(-1.,1.,0.);
Point p2=new Point(-1.,-1.,0.);
Point p3=new Point(1.,1.,0.);
Point p4=new Point(1.,-1.,0.);
xAxe.add(p1);
xAxe.add(p2);
xAxe.add(p3);
xAxe.add(p4);
gLInterface.setAxe(xAxe);
}
};
public class openGL_class {
public static void main(String[] args) {
Graph g=new Graph();
g.drawAxes();
}
} |
Partager