Praktika Java / Computergraphik

14. Info
Verfügbare Informationen zu "Praktika Java / Computergraphik"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: timo
  • Forum: 14. Info
  • Forenbeschreibung: Informatiker der NTA-Isny
  • aus dem Unterforum: Java
  • Antworten: 1
  • Forum gestartet am: Donnerstag 15.06.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Praktika Java / Computergraphik
  • Letzte Antwort: vor 16 Jahren, 8 Monaten, 13 Tagen, 3 Stunden, 53 Minuten
  • Alle Beiträge und Antworten zu "Praktika Java / Computergraphik"

    Re: Praktika Java / Computergraphik

    timo - 14.07.2007, 13:40

    Praktika Java / Computergraphik
    Folgende Lösungen der Aufgaben der Praktika wurden gesammelt und von einzelnen Teilnehmern der Übungsgruppe 14. Info zur Verfügung gestellt. Es wird kein Anspruch auf Vollständigkeit erhoben.


    Praktika 1

    import java.awt.*;
    import java.awt.event.*;
    import javax.media.j3d.*;
    import javax.swing.*;
    import javax.vecmath.*;
    import com.sun.j3d.utils.behaviors.interpolators.*;
    import com.sun.j3d.utils.behaviors.keyboard.*;
    import com.sun.j3d.utils.geometry.*;
    import com.sun.j3d.utils.universe.*;


    class Aufgabe1 extends JFrame {

    // Konstruktor von Aufgabe 1
    public Aufgabe1() {
    // Anwendung beenden beim Schliessen des Fensters
    addWindowListener(new WindowAdapter () {
    public void windowClosing(WindowEvent evt) {
    System.exit(0);
    }
    });
    // Ab hier folgt der Java 3D Code

    GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
    Canvas3D canvas3D = new Canvas3D(config);
    getContentPane().add("Center", canvas3D);
    SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
    simpleU.getViewingPlatform().setNominalViewingTransform();// 2a
    BranchGroup scene = createContentBranchGraph();
    simpleU.addBranchGraph(scene);



    }

    // Diese Funktion muss angepasst werden (Rückgabetyp beachten!)
    public BranchGroup createContentBranchGraph()
    {
    BranchGroup wuerfel = new BranchGroup();
    wuerfel.addChild(new ColorCube(0.4));

    return wuerfel;

    }

    public static void main(String argv[]) {
    Aufgabe1 mainFrame = new Aufgabe1();
    mainFrame.setSize(400, 400);
    mainFrame.setTitle("ComputerGrafik Praktikum - Aufgabe 1");
    mainFrame.setVisible(true);
    }
    }


    Praktika 2

    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.*;
    import javax.media.j3d.*;
    import javax.vecmath.*;
    import com.sun.j3d.utils.behaviors.interpolators.*;
    import com.sun.j3d.utils.behaviors.keyboard.*;
    import com.sun.j3d.utils.geometry.*;
    import com.sun.j3d.utils.universe.*;


    class Aufgabe2 extends Frame
    {

    // Konstruktor von Aufgabe 2
    public Aufgabe2()
    {

    // Anwendung beenden beim Schliessen des Fensters
    addWindowListener(new WindowAdapter ()
    {
    public void windowClosing(WindowEvent evt)
    {
    System.exit(0);
    }
    });
    // Ab hier folgt der Java 3D Code

    setLayout(new BorderLayout());
    GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
    Canvas3D canvas3d = new Canvas3D(config);
    add("Center", canvas3d);
    SimpleUniverse simpleU = new SimpleUniverse(canvas3d);
    BranchGroup scene = createContentBranchGraph();
    simpleU.addBranchGraph(scene);

    // Menü-Steuerung
    // Pfeiltasten: UP - DOWN - LEFT - RIGHT
    BranchGroup viewBranchGroup = new BranchGroup();

    TransformGroup viewPlatform = simpleU.getViewingPlatform().getViewPlatformTransform();

    KeyNavigatorBehavior keyNavBeh = new KeyNavigatorBehavior(viewPlatform);

    keyNavBeh.setSchedulingBounds(new BoundingSphere(new Point3d(0,0,0), 1000.0));

    //VewBranchGraph zusammenstellen und dem Simple Universe hinzufügen

    viewBranchGroup.addChild(keyNavBeh);
    simpleU.getViewingPlatform().addChild(viewBranchGroup);

    }

    // Diese Funktion muss angepasst werden (Rückgabetyp beachten!)
    public BranchGroup createContentBranchGraph()
    {
    BranchGroup objRoot = new BranchGroup();

    //Drehung
    Transform3D rotate = new Transform3D();
    Transform3D tempRotate = new Transform3D();
    rotate.rotX(Math.PI/4.0d);
    tempRotate.rotY(Math.PI/6.0d);
    rotate.mul(tempRotate);
    TransformGroup objRotate = new TransformGroup(rotate);

    //Drehung um die Achse
    objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    Alpha alpha = new Alpha(-1, Alpha.INCREASING_ENABLE, 0, 0, 4000, 0, 0, 0, 0, 0);
    RotationInterpolator dreh = new RotationInterpolator(alpha, objRotate, rotate, 0.0f, (float) Math.PI*3.0f);
    dreh.setSchedulingBounds(new BoundingSphere());

    objRoot.addChild(dreh);
    objRoot.addChild(objRotate);
    objRotate.addChild(new ColorCube(0.4));
    objRoot.compile();

    return objRoot;
    }

    public static void main(String argv[])
    {
    Aufgabe2 mainFrame = new Aufgabe2();
    mainFrame.setSize(400, 400);
    mainFrame.setTitle("ComputerGrafik Praktikum - Aufgabe 2");
    mainFrame.setVisible(true);
    }
    }


    Praktika 4

    import java.awt.*;
    import java.awt.event.*;
    import javax.media.j3d.*;
    import javax.swing.*;
    import javax.vecmath.*;
    import com.sun.j3d.utils.behaviors.interpolators.*;
    import com.sun.j3d.utils.behaviors.keyboard.*;
    import com.sun.j3d.utils.geometry.*;
    import com.sun.j3d.utils.universe.*;
    import com.sun.j3d.utils.image.TextureLoader;
    import com.sun.j3d.loaders.objectfile.*;
    import java.io.*;
    import com.sun.j3d.loaders.*;




    class Aufgabe1 extends Frame {

    // Konstruktor von Aufgabe 1
    public Aufgabe1() {

    // Anwendung beenden beim Schliessen des Fensters
    addWindowListener(new WindowAdapter () {
    public void windowClosing(WindowEvent evt) {
    System.exit(0);
    }
    });
    // Ab hier folgt der Java 3D Code

    GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
    Canvas3D canvas3D = new Canvas3D(config);
    add("Center", canvas3D);
    SimpleUniverse simpleU = new SimpleUniverse(canvas3D);

    simpleU.getViewingPlatform().setNominalViewingTransform();
    BranchGroup scene = createContentBranchGraph();
    simpleU.addBranchGraph(scene);

    BranchGroup viewBranchGraph = new BranchGroup();

    TransformGroup viewPlatform = simpleU.getViewingPlatform().getViewPlatformTransform();

    /*
    rechts, links, hoch, runter, bild auf, bild ab
    ZUERST NACH LINKS ODER RECHTS SONST HAUT DAS OBJEKT AB
    */

    KeyNavigatorBehavior keyNav = new KeyNavigatorBehavior(viewPlatform);

    keyNav.setSchedulingBounds(new BoundingSphere(new Point3d(), 1000.0));

    viewBranchGraph.addChild(keyNav);
    simpleU.getViewingPlatform().addChild(viewBranchGraph);

    simpleU.getViewingPlatform().setNominalViewingTransform();
    }

    // Diese Funktion muss angepasst werden (Rückgabetyp beachten!)
    public BranchGroup createContentBranchGraph()
    {

    BranchGroup objRoot = new BranchGroup();
    Appearance appear = new Appearance();

    //TextureLoader loader = new TextureLoader("earth.jpg", null);

    //ImageComponent2D image = loader.getImage();
    //Texture2D texture = new Texture2D(Texture.BASE_LEVEL, Texture.RGBA, image.getWidth(), image.getHeight());
    //texture.setImage(0, image);
    //appear.setTexture(texture);





    //Sphere sphere = new Sphere(1.0f, Primitive.GENERATE_TEXTURE_COORDS, appear);

    Transform3D rotate = new Transform3D();
    Transform3D tempRotate = new Transform3D();

    TransformGroup objRotate = new TransformGroup(rotate);

    objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    Alpha alpha = new Alpha(-1,Alpha.INCREASING_ENABLE,0,0,2000,0,0,0,0,0);
    RotationInterpolator dreh = new RotationInterpolator (alpha,objRotate,rotate,0.0f,(float) Math.PI*2.0f);

    dreh.setSchedulingBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0));





    try{
    Scene s = null;

    ObjectFile f = new ObjectFile (ObjectFile.RESIZE);

    s = f.load("airtable.obj");
    objRoot.addChild(s.getSceneGroup());

    }
    catch(IOException e){}

    AmbientLight lightA = new AmbientLight();
    lightA.setInfluencingBounds(new BoundingSphere());
    objRoot.addChild(lightA);
    DirectionalLight lightD1 = new DirectionalLight();
    lightD1.setInfluencingBounds(new BoundingSphere());
    Vector3f direction1 = new Vector3f(-1.0f, -1.0f, -0.5f);
    direction1.normalize();
    lightD1.setDirection(direction1);
    lightD1.setColor(new Color3f(0.0f, 0.0f, 1.0f));
    objRoot.addChild(lightD1);


    objRoot.addChild(dreh);

    objRoot.addChild(objRotate);

    //objRotate.addChild(sphere); // Erde verschwindet
    return objRoot;






    }

    public static void main(String argv[]) {
    Aufgabe1 mainFrame = new Aufgabe1();
    mainFrame.setSize(400, 400);
    mainFrame.setTitle("ComputerGrafik Praktikum - Aufgabe 1");
    mainFrame.setVisible(true);
    }
    }


    Praktika 6

    // Auvgabe 6 - Java-Praktikum 22.05.2007
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.*;
    import javax.media.j3d.*;
    import javax.swing.*;
    import javax.vecmath.*;
    import com.sun.j3d.utils.behaviors.interpolators.*;
    import com.sun.j3d.utils.behaviors.keyboard.*;
    import com.sun.j3d.utils.geometry.*;
    import com.sun.j3d.utils.universe.*;


    class Aufgabe1 extends JFrame {

    // Konstruktor von Aufgabe 1
    public Aufgabe1() {

    // Anwendung beenden beim Schliessen des Fensters
    addWindowListener(new WindowAdapter () {
    public void windowClosing(WindowEvent evt) {
    System.exit(0);
    }
    });
    // Ab hier folgt der Java 3D Code

    GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
    Canvas3D c3d = new Canvas3D(config);

    getContentPane().add("Center", c3d);

    SimpleUniverse simpleU = new SimpleUniverse(c3d);
    simpleU.getViewingPlatform().setNominalViewingTransform();

    BranchGroup scene = createContentBranchGraph();
    simpleU.addBranchGraph(scene);

    // Menü-Steuerung
    // Pfeiltasten: UP - DOWN - LEFT - RIGHT
    BranchGroup viewBranchGroup = new BranchGroup();

    TransformGroup viewPlatform = simpleU.getViewingPlatform().getViewPlatformTransform();

    KeyNavigatorBehavior keyNavBeh = new KeyNavigatorBehavior(viewPlatform);

    keyNavBeh.setSchedulingBounds(new BoundingSphere(new Point3d(0,0,0), 1000.0));

    //VewBranchGraph zusammenstellen und dem Simple Universe hinzufügen

    viewBranchGroup.addChild(keyNavBeh);
    simpleU.getViewingPlatform().addChild(viewBranchGroup);

    }

    // Diese Funktion muss angepasst werden (Rückgabetyp beachten!)

    public BranchGroup createContentBranchGraph()
    {
    myCube cube = new myCube();
    BranchGroup wuerfel = new BranchGroup();
    //wuerfel.addChild(new ColorCube(0.4));
    wuerfel.addChild(new Shape3D(cube));

    return wuerfel;

    }

    public BranchGroup createSceneGraph()
    {
    // Create the root of the branch graph
    BranchGroup objRoot = new BranchGroup();

    // rotate object has composited transformation matrix
    Transform3D rotate = new Transform3D();
    Transform3D tempRotate = new Transform3D();

    rotate.rotX(Math.PI/4.0d);
    tempRotate.rotY(Math.PI/5.0d);
    rotate.mul(tempRotate);

    TransformGroup objRotate = new TransformGroup(rotate);
    objRoot.addChild(objRotate);
    objRotate.addChild(new ColorCube(0.4));

    // Let Java 3D perform optimizations on this scene graph.
    objRoot.compile();

    return objRoot;
    }

    public static void main(String argv[]) {
    Aufgabe1 mainFrame = new Aufgabe1();
    mainFrame.setSize(400, 400);
    mainFrame.setTitle("ComputerGrafik Praktikum - Aufgabe 2");
    mainFrame.setVisible(true);
    }
    }




    class myCube extends QuadArray
    {
    private float[] verts=
    {
    1.0f, -1.0f, 1.0f,
    1.0f, 1.0f, 1.0f,
    -1.0f, 1.0f, 1.0f,
    -1.0f, -1.0f, 1.0f,

    1.0f, -1.0f, 1.0f,
    1.0f, -1.0f, -1.0f,
    1.0f, 1.0f, -1.0f,
    1.0f, 1.0f, 1.0f,

    1.0f, -1.0f, -1.0f,
    -1.0f, -1.0f, -1.0f,
    -1.0f, 1.0f, -1.0f,
    1.0f, 1.0f, -1.0f,

    -1.0f, 1.0f, -1.0f,
    -1.0f, -1.0f, -1.0f,
    -1.0f, -1.0f, 1.0f,
    -1.0f, 1.0f, 1.0f,

    -1.0f, -1.0f, -1.0f,
    1.0f, -1.0f, -1.0f,
    1.0f, -1.0f, 1.0f,
    -1.0f, -1.0f, 1.0f,

    -1.0f, 1.0f, -1.0f,
    -1.0f, 1.0f, 1.0f,
    1.0f, 1.0f, 1.0f,
    1.0f, 1.0f, -1.0f,
    };

    //private float[] normals=[];

    private float[] colors=
    {
    0.2f, 0.3f, 0.4f,
    0.5f, 0.3f, 0.1f,
    0.2f, 0.3f, 0.3f,
    0.2f, 0.3f, 0.4f,

    0.9f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,

    0.2f, 0.9f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,

    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.9f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,

    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 03.f, 0.4f,

    0.9f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.9f, 0.4f,
    };

    myCube()
    {
    super(24,QuadArray.COORDINATES|QuadArray.COLOR_3);
    setCoordinates(0,verts);
    //setNormals(0,verts);
    setColors(0,colors);
    }
    }


    Praktika 7

    // Aufgabe 7 - Java-Praktikum 12.06.2007
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.*;
    import javax.media.j3d.*;
    import javax.swing.*;
    import javax.vecmath.*;
    import com.sun.j3d.utils.behaviors.interpolators.*;
    import com.sun.j3d.utils.behaviors.keyboard.*;
    import com.sun.j3d.utils.geometry.*;
    import com.sun.j3d.utils.universe.*;


    class Aufgabe1 extends JFrame {

    // Konstruktor von Aufgabe 1
    public Aufgabe1() {

    // Anwendung beenden beim Schliessen des Fensters
    addWindowListener(new WindowAdapter () {
    public void windowClosing(WindowEvent evt) {
    System.exit(0);
    }
    });
    // Ab hier folgt der Java 3D Code

    GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
    Canvas3D c3d = new Canvas3D(config);

    getContentPane().add("Center", c3d);

    SimpleUniverse simpleU = new SimpleUniverse(c3d);
    simpleU.getViewingPlatform().setNominalViewingTransform();

    BranchGroup scene = createContentBranchGraph();
    simpleU.addBranchGraph(scene);

    // Menü-Steuerung
    // Pfeiltasten: UP - DOWN - LEFT - RIGHT
    BranchGroup viewBranchGroup = new BranchGroup();

    TransformGroup viewPlatform = simpleU.getViewingPlatform().getViewPlatformTransform();

    KeyNavigatorBehavior keyNavBeh = new KeyNavigatorBehavior(viewPlatform);

    keyNavBeh.setSchedulingBounds(new BoundingSphere(new Point3d(0,0,0), 1000.0));

    //VewBranchGraph zusammenstellen und dem Simple Universe hinzufügen

    viewBranchGroup.addChild(keyNavBeh);
    simpleU.getViewingPlatform().addChild(viewBranchGroup);

    }

    // Diese Funktion muss angepasst werden (Rückgabetyp beachten!)

    public BranchGroup createContentBranchGraph()
    {
    // myCube cube = new myCube();
    BranchGroup wuerfel = new BranchGroup();
    // wuerfel.addChild(new ColorCube(0.4));
    // wuerfel.addChild(new Shape3D(cube));
    wuerfel.addChild(new Haus());

    return wuerfel;

    }

    public BranchGroup createSceneGraph()
    {
    // Create the root of the branch graph
    BranchGroup objRoot = new BranchGroup();

    // rotate object has composited transformation matrix
    Transform3D rotate = new Transform3D();
    Transform3D tempRotate = new Transform3D();

    rotate.rotX(Math.PI/4.0d);
    tempRotate.rotY(Math.PI/5.0d);
    rotate.mul(tempRotate);

    TransformGroup objRotate = new TransformGroup(rotate);
    objRoot.addChild(objRotate);
    objRotate.addChild(new ColorCube(0.4));

    // Let Java 3D perform optimizations on this scene graph.
    objRoot.compile();

    return objRoot;
    }

    public static void main(String argv[]) {
    Aufgabe1 mainFrame = new Aufgabe1();
    mainFrame.setSize(400, 400);
    mainFrame.setTitle("ComputerGrafik Praktikum - Aufgabe 2");
    mainFrame.setVisible(true);
    }
    }



    /*
    class myCube extends QuadArray
    {
    private float[] verts=
    {
    1.0f, -1.0f, 1.0f,
    1.0f, 1.0f, 1.0f,
    -1.0f, 1.0f, 1.0f,
    -1.0f, -1.0f, 1.0f,

    1.0f, -1.0f, 1.0f,
    1.0f, -1.0f, -1.0f,
    1.0f, 1.0f, -1.0f,
    1.0f, 1.0f, 1.0f,

    1.0f, -1.0f, -1.0f,
    -1.0f, -1.0f, -1.0f,
    -1.0f, 1.0f, -1.0f,
    1.0f, 1.0f, -1.0f,

    -1.0f, 1.0f, -1.0f,
    -1.0f, -1.0f, -1.0f,
    -1.0f, -1.0f, 1.0f,
    -1.0f, 1.0f, 1.0f,

    -1.0f, -1.0f, -1.0f,
    1.0f, -1.0f, -1.0f,
    1.0f, -1.0f, 1.0f,
    -1.0f, -1.0f, 1.0f,

    -1.0f, 1.0f, -1.0f,
    -1.0f, 1.0f, 1.0f,
    1.0f, 1.0f, 1.0f,
    1.0f, 1.0f, -1.0f,
    };

    //private float[] normals=[];

    private float[] colors=
    {
    0.2f, 0.3f, 0.4f,
    0.5f, 0.3f, 0.1f,
    0.2f, 0.3f, 0.3f,
    0.2f, 0.3f, 0.4f,

    0.9f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,

    0.2f, 0.9f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,

    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.9f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,

    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 03.f, 0.4f,

    0.9f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.3f, 0.4f,
    0.2f, 0.9f, 0.4f,
    };

    myCube()
    {
    super(24,QuadArray.COORDINATES|QuadArray.COLOR_3);
    setCoordinates(0,verts);
    //setNormals(0,verts);
    setColors(0,colors);
    }
    }

    */

    class Haus extends Shape3D
    {
    private Geometry HausGeometry;
    public Haus()
    {
    HausGeometry = createGeometry();
    setGeometry(HausGeometry);
    }

    private Geometry createGeometry()
    {
    float rectangles[]=
    {
    // Floor
    0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
    // East side
    1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f,
    // West side
    0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
    // South side
    0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f,
    // North side
    0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f,
    // Roof east side
    1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.5f, 1.5f, 0.0f, 0.5f, 1.5f, 1.0f,
    // Roof west side
    0.0f, 1.0f, 1.0f, 0.5f, 1.5f, 1.0f, 0.5f, 1.5f, 0.0f, 0.0f, 1.0f, 0.0f
    };

    float triangles[]=
    {
    0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.5f, 1.5f, 1.0f,
    0.5f, 1.5f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f
    };

    int vertexCount = rectangles.length/3;
    QuadArray quad = new QuadArray(vertexCount, QuadArray.COORDINATES | QuadArray.COLOR_3);
    quad.setCoordinates(0, rectangles);

    vertexCount = triangles.length/3;
    TriangleArray tri = new TriangleArray(vertexCount, TriangleArray.COORDINATES | TriangleArray.COLOR_3);
    tri.setCoordinates(0,triangles);

    // Define colors. Otherwise everything will be white
    Color3f colors[] = new Color3f[rectangles.length/3];
    for (int i=0; i<4; i++) colors[i] = new Color3f(Color.white); // Floor
    for (int i=4; i<20; i++) colors[i] = new Color3f(Color.blue); // Walls
    for (int i=20; i<28; i++) colors[i] = new Color3f(Color.red); // Roof
    quad.setColors(0, colors); // Java 3D

    colors = new Color3f[triangles.length/3];
    for (int i=0; i<6; i++) colors[i] = new Color3f(Color.blue);
    tri.setColors(0, colors);
    setGeometry(quad); // Shape3D methods
    insertGeometry(tri, 0);
    return getGeometry();
    }
    }


    Praktika 8

    import java.awt.*;
    import javax.swing.*;
    import java.awt.image.*;

    public class Aufgabe8b extends JFrame {

    private BufferedImage image;
    private final static int XMAX = 320;
    private final static int YMAX = 240;
    private final static double AUGE_X =0.0;
    private final static double AUGE_Y =0.0;
    private final static double AUGE_Z =500.0;
    private final static double KUGEL_X =0.0;
    private final static double KUGEL_Y =0.0;
    private final static double KUGEL_Z =-100.0;
    private final static double KUGEL_RADIUS =100.0;
    private final static double DISTANCE =300.0;

    private Aufgabe8b() {
    setSize( new Dimension ( XMAX,YMAX ) );
    image = new BufferedImage( XMAX, YMAX,
    BufferedImage.TYPE_3BYTE_BGR);
    }

    public void paint( Graphics gc ) {
    ((Graphics2D) gc).drawImage(image,0,0,Color.white,null);
    }

    private void trace() {
    for ( int y = -YMAX/2; y<YMAX/2; ++y) {
    for ( int x = -XMAX/2; x<XMAX/2; ++x) {
    double vz = DISTANCE;
    double l = Math.sqrt(x*x+y*y+vz*vz);
    double vx = x/l;
    double vy = y/l;
    vz = vz/l;
    double b = 2.0 * ( vx*(AUGE_X-KUGEL_X) + vy*(AUGE_Y-KUGEL_Y) + vz*(AUGE_Z-KUGEL_Z) );
    double c = (AUGE_X-KUGEL_X)*(AUGE_X-KUGEL_X) + (AUGE_Y-KUGEL_Y)*(AUGE_Y-KUGEL_Y) + (AUGE_Z-KUGEL_Z)*(AUGE_Z-KUGEL_Z) - 2*KUGEL_RADIUS*KUGEL_RADIUS;
    double diskriminate = b*b-4*c;

    if ( diskriminate<0>1.0f) { rr=1.0f; } else if (rr<0>1.0f) { gg=1.0f; } else if (gg<0>1.0f) { bb=1.0f; } else if (bb<0.0f) { bb=0.0f; };

    Color cc = new Color(rr,gg,bb) ;
    image.setRGB(x+XMAX/2, y+YMAX/2, cc.getRGB() );
    }
    }
    this.repaint();
    }
    }

    public static void main( String[] args) {
    Aufgabe8b ray = new Aufgabe8b ();
    ray.show();
    ray.trace();
    }
    }


    Praktika 9

    import java.awt.*;
    import javax.swing.*;
    import java.awt.image.*;

    public class Aufgabe9 extends JFrame {

    private BufferedImage image;
    private final static int XMAX = 640;
    private final static int YMAX = 480;
    private final static double AUGE_X =0.0;
    private final static double AUGE_Y =0.0;
    private final static double AUGE_Z =300.0;

    private final static double KUGEL_X =-50.0;
    private final static double KUGEL_Y =0.0;
    private final static double KUGEL_Z =-100.0;

    private final static double KUGEL2_X =150.0;
    private final static double KUGEL2_Y =0.0;
    private final static double KUGEL2_Z =-100.0;

    private final static double KUGEL_RADIUS =100.0;
    private final static double KUGEL2_RADIUS =100.0;

    private final static double DISTANCE =300.0;

    private Aufgabe9() {
    setSize( new Dimension ( XMAX,YMAX ) );
    image = new BufferedImage( XMAX, YMAX,
    BufferedImage.TYPE_3BYTE_BGR);
    }

    public void paint( Graphics gc ) {
    ((Graphics2D) gc).drawImage(image,0,0,Color.white,null);
    }

    private void trace() {
    for ( int y = -YMAX/2; y<YMAX/2; ++y) {
    for ( int x = -XMAX/2; x<XMAX/2; ++x) {
    double vz = DISTANCE;
    double l = Math.sqrt(x*x+y*y+vz*vz);
    double vx = x/l;
    double vy = y/l;
    vz = vz/l;
    double b = 2.0 * ( vx*(AUGE_X-KUGEL_X) + vy*(AUGE_Y-KUGEL_Y) + vz*(AUGE_Z-KUGEL_Z) );
    double c = (AUGE_X-KUGEL_X)*(AUGE_X-KUGEL_X) + (AUGE_Y-KUGEL_Y)*(AUGE_Y-KUGEL_Y) + (AUGE_Z-KUGEL_Z)*(AUGE_Z-KUGEL_Z) - 2*KUGEL_RADIUS*KUGEL_RADIUS;

    double b2 = 2.0 * ( vx*(AUGE_X-KUGEL2_X) + vy*(AUGE_Y-KUGEL2_Y) + vz*(AUGE_Z-KUGEL2_Z) );
    double c2 = (AUGE_X-KUGEL2_X)*(AUGE_X-KUGEL2_X) + (AUGE_Y-KUGEL2_Y)*(AUGE_Y-KUGEL2_Y) + (AUGE_Z-KUGEL2_Z)*(AUGE_Z-KUGEL2_Z) - 2*KUGEL2_RADIUS*KUGEL2_RADIUS;

    double diskriminate = b*b-4*c;
    double diskriminate2 = b2*b2-4*c2;

    if ( diskriminate<0.0 && diskriminate2<0>1.0f) { rr=1.0f; } else if (rr<0>1.0f) { gg=1.0f; } else if (gg<0>1.0f) { bb=1.0f; } else if (bb<0>1.0f) { rr2=1.0f; } else if (rr2<0>1.0f) { gg2=1.0f; } else if (gg2<0>1.0f) { bb2=1.0f; } else if (bb2<0.0f) { bb2=0.0f; };

    Color cc = new Color(rr,gg,bb) ;
    Color cc2 = new Color(rr2,gg2,bb2) ;
    image.setRGB(x+XMAX/2, y+YMAX/2, cc.getRGB()+cc2.getRGB() );
    }
    }
    this.repaint();
    }
    }

    public static void main( String[] args) {
    Aufgabe9 ray = new Aufgabe9 ();
    ray.show();
    ray.trace();
    }
    }



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum 14. Info

    Sorber-Verabschiedung - gepostet von ravekev am Mittwoch 19.09.2007
    1. Semester - gepostet von ravekev am Donnerstag 15.06.2006
    studivz.net - gepostet von ravekev am Mittwoch 14.02.2007
    Studentenmarktplatz - gepostet von ravekev am Montag 05.11.2007
    Passwort für die Prüfungsanmeldung - gepostet von ravekev am Dienstag 12.06.2007



    Ähnliche Beiträge wie "Praktika Java / Computergraphik"

    Praktika - Che Guewara (Donnerstag 20.09.2007)
    Java - Freaky Finger (Mittwoch 12.05.2004)
    Java ist Open Source - gnomed (Dienstag 08.05.2007)
    euIRC Java-Chat - Jonathan Pearce (Freitag 12.10.2007)
    Java Progs - r4nc0r (Freitag 29.09.2006)
    300 mobile java games - tamilwarrior (Mittwoch 28.06.2006)
    Java E-Book - Per_ox (Sonntag 11.06.2006)
    Bio-Praktika für 6. Sem NANO - Markus Maniak (Freitag 23.02.2007)
    Hausaufgaben zum 02.10.07 (Java-Passwortschutz) - Conse (Dienstag 25.09.2007)
    Java's Emu 0.2.1 - Java (Sonntag 07.01.2007)