Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Wo ist der Unterschied?Arbeitszeit oder Rechenzeit?
package yc021;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import javax.media.opengl.GL;
import javax.media.opengl.GL2;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.awt.GLCanvas;
import javax.media.opengl.fixedfunc.GLMatrixFunc;
import com.jogamp.opengl.util.Animator;
public class Poly implements GLEventListener {
private static final float[] g1pos = { -1f, -0f };
private static final float[] g2pos = { +1f, +0f };
private static final float[] g1col = { 1f, 0f, 0f };
private static final float[] g2col = { 0f, 1f, 0f };
private static final float g1g2dist = (float)(Math.pow(g2pos[0] - g1pos[0], 2) + Math.pow(g2pos[1] - g1pos[1], 2));
private GL2 gl;
@Override
public void init(final GLAutoDrawable drawable) {
gl = drawable.getGL().getGL2();
}
@Override
public void display(final GLAutoDrawable drawable) {
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
gl.glBegin(GL2.GL_POLYGON);
setVertex(+0.0f, -1.0f);
setVertex(+1.0f, -0.0f);
setVertex(+0.0f, +1.0f);
setVertex(-1.0f, +0.0f);
gl.glEnd();
}
private void setVertex(final float... pos) {
final float factor = ((pos[0] - g1pos[0]) * (g2pos[0] - g1pos[0]) + (pos[1] - g1pos[1]) * (g2pos[1] - g1pos[1])) / g1g2dist;
final float r = (1 - factor) * g1col[0] + factor * g2col[0];
final float g = (1 - factor) * g1col[1] + factor * g2col[1];
final float b = (1 - factor) * g1col[2] + factor * g2col[2];
gl.glColor3f(r, g, b);
gl.glVertex2f(pos[0], pos[1]);
}
@Override
public void reshape(final GLAutoDrawable drawable, final int x, final int y, final int width, final int height) {
gl.glMatrixMode(GLMatrixFunc.GL_PROJECTION);
gl.glLoadIdentity();
gl.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);
gl.glLoadIdentity();
}
@Override
public void dispose(final GLAutoDrawable arg0) {
}
public static void main(final String[] args) throws IOException {
final Poly base = new Poly();
final Frame frame = new Frame();
final GLCanvas canvas = new GLCanvas();
final Animator animator = new Animator(canvas);
canvas.addGLEventListener(base);
frame.add(canvas);
frame.setSize(500, 400);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(final WindowEvent e) {
new Thread(new Runnable() {
public void run() {
animator.stop();
System.exit(0);
}
}).start();
}
});
frame.setLocationRelativeTo(null);
frame.setVisible(true);
animator.start();
}
}
private static final float[] g1pos = { -0f, -0f };
private static final float[] g2pos = { +1f, +0f };
gl.glBegin(GL2.GL_POLYGON);
setVertex(+1.0f, -0.0f);
setVertex(+0.0f, +1.0f);
setVertex(-1.0f, +0.0f);
setVertex(+0.0f, -1.0f);
gl.glEnd();
Bestimmt postet Fancy gleich ein paar Beispiele 🙂