Java3D - pont rajzolása

Java3D - pont rajzolása
2006-09-27T20:35:06+02:00
2006-09-29T13:25:17+02:00
2022-11-01T15:41:59+01:00
correspondent
Helló!

Java3D-ben (véletlenül sem OpenGL-ben) szeretném azt megcsinálni, hogy megjelenjen egy pont aminek a 3 koordinátáját én adom meg. Jó lenne, ha a tér kicsit el lenne forgatva, hogy látszódjon, hogy 3D.

Kössz
Mutasd a teljes hozzászólást!

  • Itt találsz szép kódocskákat
    Amúgymeg egy Pont 3D-ben nemláccik 3d-snek mer minden irányból nézve egy PONT

    Maradj a KOckánál ami az első feladat.
    De a 3. leírja hogy hogy csinálj QUAD-okat
    Mutasd a teljes hozzászólást!
  • Ettől okosabb lettem. Ezek szerint kis kockát kell rajzolni. Maradt 2 kérdés:
    - Kis gömböt nem lehet?
    - hogy lehet megadni, hogy mik legyenek a pontnak tekintett kocka/gömb koordinátái?
    Mutasd a teljes hozzászólást!
  • QuadArray polygon1 = new QuadArray (4, QuadArray.COORDINATES); poly3D.setTranslation(new Vector3f(0f,0f,0f)); polygon1.setTransform(poly3D);

    De szerintem ha eléggé kutacc ott van a kódban.
    Így meg szerintem megtalálod, hogy hogy kell Gömböt csinálni
    Mutasd a teljes hozzászólást!
  • OK, de én ezt nem tudom így megírni, a weblapon sincs fenn a forráskódja. Maradtam a Quad-nél. Itt egy sun-os példa. Meg tudod mondani, mit kell átírni benne, hogy működjön?

    import java.applet.Applet;
    import java.awt.BorderLayout;
    import java.awt.Frame;
    import java.awt.event.*;
    import java.awt.GraphicsConfiguration;
    import com.sun.j3d.utils.applet.MainFrame;
    import com.sun.j3d.utils.geometry.ColorCube;
    import com.sun.j3d.utils.universe.*;
    import javax.media.j3d.*;
    import javax.vecmath.*;


    public class Default extends Applet{

    public Default(){
    setLayout(new BorderLayout());
    GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
    Canvas3D canvas3D = new Canvas3D(config);
    add("Center", canvas3D);

    BranchGroup scene = createSceneGraph();

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

    simpleU.addBranchGraph(scene);
    }

    private BranchGroup createSceneGraph(){
    BranchGroup objRoot = new BranchGroup();

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

    rotate.rotX(Math.PI/8);
    tempRotate.rotY(Math.PI/8);

    rotate.mul(tempRotate);

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


    objRotate.addChild(new ColorCube(0.4));

    objRoot.compile();


    objRoot.compile();

    return objRoot;
    }

    public static void main(String args[]){
    Frame frame = new MainFrame(new Default(), 256, 256);
    }

    }
    Mutasd a teljes hozzászólást!
  • Ha jól látom x és y-on forgatod a kockát.
    De mi nem működik?

    Amúgy
    objRoot.compile();
    ből nemkell 2.
    Mutasd a teljes hozzászólást!
  • Működik.
    Csak az a bajom, hogy nem azt csinálja, amit akarok. Kirajzol egy bazinagy kockát. Nekem meg az kellene, hogy egy pontszerű kis kockát kirajzoljon, és a koordinátákat is megadhassam, hogy hol legyen.
    Mutasd a teljes hozzászólást!
  • Transform3D scale = new Transform3D();
    scale.scaleAdd(...);

    Ez segít
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd