2009-08-17 15 views
6

मैं एक दृश्य जावा 3 डी, जहां उपयोगकर्ता को देखने की स्थिति कुछ करने के लिए सेट कर दिया जाता निम्नलिखित कोड का उपयोग कर समन्वय में लिखा है:जावा 3 डी दृश्य पर 2 डी ओवरले कैसे आकर्षित करें?

ViewingPlatform vp = simpleUniverse.getViewingPlatform(); 
TransformGroup steerTG = vp.getViewPlatformTransform(); 

Transform3D t3d = new Transform3D(); 
steerTG.getTransform(t3d); 

t3d.lookAt(
     new Point3d(-5, 10, 25), new Point3d(0, 0, 0), new Vector3d(0, 1, 0)); 
t3d.invert(); 

steerTG.setTransform(t3d); 

अब मैं दृश्य हमेशा दिखाई दे रहा है कि के शीर्ष पर किसी ओवरले लगाने की जरूरत है, जैसे कुछ पाठ। मैं निम्नलिखित की कोशिश की है, लेकिन कोई लाभ नहीं हुआ:

PlatformGeometry pg = new PlatformGeometry(); 
Text2D text = new Text2D("Text to display", Cell.BLACK, "Verdana", 18, 1); 
pg.addChild(text); 
simpleUniverse.getViewingPlatform().setPlatformGeometry(pg); 

जब मैं ऊपर कोड चलाने के लिए, मैं किसी भी पाठ सब पर नहीं दिख रहा है। क्या कोई मदद कर सकता है?

+0

मुझे उम्मीद है कि मैं जल्द ही इस प्रश्न को समझने में सक्षम हूं। जावा 3 डी मैं यहाँ आ गया। –

उत्तर

4

समस्या यह है कि आप सीधे क्लिपिंग विमान के भीतर कैमरे के शीर्ष पर टेक्स्ट प्रदर्शित कर रहे हैं। आपको z अक्ष के साथ -1 अनुवाद करने के लिए इस तरह की कुछ चाहिए।

PlatformGeometry pg = new PlatformGeometry(); 

    TransformGroup objScale = new TransformGroup(); 
    Transform3D t3d = new Transform3D(); 
    t3d.setTranslation(new Vector3f(0f, 0f, -1f)); 
    objScale.setTransform(t3d); 

    Text2D text = new Text2D("Text to display", Cell.BLACK, "Verdana", 18, 1); 

    objScale.addChild(text); 
    pg.addChild(objScale); 

    simpleUniverse.getViewingPlatform().setPlatformGeometry(pg); 

आशा है कि मदद करता है।

+0

बिल्कुल शानदार! बहुत बहुत धन्यवाद! – Cuga

संबंधित मुद्दे