मैंने इस question का अध्ययन किया, लेकिन मुझे अभी भी यह नहीं मिला है। नीचे दिया गया सबसे छोटा संभव कोड Pyramid
पूरी तरह से ग्रे दिखाता है, जबकि मैं pyramid
विभिन्न रंगों को बनाने के लिए 6 triangles
देने का प्रयास करता हूं। तो ... ये रंग क्यों नहीं दिखते?जावाएफएक्स 3 डी रंग चेहरे ... फिर
ध्यान दें कि मैंने उस प्रश्न से getTexCoords().addAll(..)
कथन उधार लिया है, लेकिन स्पष्ट रूप से मैं अभी भी कुछ गलत कर रहा हूं। क्या यह uv mapping
है? वैसे भी क्या है? मैंने एक स्थलीय स्पष्टीकरण देखा है (sphere
< ->map
), लेकिन यह बनावट/रंगों के साथ क्या करना है ...?
आपकी मदद की सराहना - माइकल
public class ColoredPyramid extends Application {
public void start(Stage primaryStage) {
Group root = new Group();
Scene scene = new Scene(root, 200, 200, true);
primaryStage.setTitle("Colored Pyramid");
primaryStage.setScene(scene);
primaryStage.show();
TriangleMesh colouredPyramid = new TriangleMesh();
float height = 100;
float hypotenuse = 150;
colouredPyramid.getPoints().addAll(0, 0, 0); //0-index:: top
colouredPyramid.getPoints().addAll(0, height, -hypotenuse/2); //1-index:: x=0, z=-hyp/2 ==> Closest to user
colouredPyramid.getPoints().addAll(-hypotenuse/2, height, 0); //2-index:: x=hyp/2, z=0 ==> Leftest
colouredPyramid.getPoints().addAll(hypotenuse/2, height, 0); //3-index:: x=hyp/2, z=0 ==> rightest
colouredPyramid.getPoints().addAll(0, height, hypotenuse/2); ////4-index:: x=0, z=hyp/2 ==> Furthest from user
//Next statement copied from stackoverflow.com/questions/26831871/coloring-individual-triangles-in-a-triangle-mesh-on-javafx
colouredPyramid.getTexCoords().addAll(
0.1f, 0.5f, // 0 red
0.3f, 0.5f, // 1 green
0.5f, 0.5f, // 2 blue
0.7f, 0.5f, // 3 yellow
0.9f, 0.5f // 4 orange
);
colouredPyramid.getFaces().addAll(0, 0, 2, 0, 1, 0); //Left front face ---> RED
colouredPyramid.getFaces().addAll(0, 1, 1, 1, 3, 1); //Right front face ---> GREEN
colouredPyramid.getFaces().addAll(0, 2, 3, 2, 4, 2); //Right back face ---> BLUE
colouredPyramid.getFaces().addAll(0, 3, 4, 3, 2, 3); //Left back face ---> RED
colouredPyramid.getFaces().addAll(4, 4, 1, 4, 2, 4); //Base: left triangle face ---> YELLOW
colouredPyramid.getFaces().addAll(4, 0, 3, 0, 1, 0); //Base: right triangle face ---> ORANGE
MeshView meshView = new MeshView(colouredPyramid);
Group group = new Group(meshView);
group.setTranslateX(100);
group.setTranslateY(80);
root.getChildren().add(group);
}
public static void main(String[] args) {
launch(args);
}
}
पहला सवाल आप जवाब देने के लिए है: जहां छवि है कि आप करेंगे है बनावट के रूप में लागू करें? आपके द्वारा सेट किए गए बनावट निर्देशांक उस छवि को देखेंगे। संकेत: आपको एक छवि की आवश्यकता है और सामग्री को फैलाने के लिए सेट करें। –
धन्यवाद जोस, लेकिन ... मैं आपको समझ में नहीं आता। बनावट में शिखर मैप करने के लिए मुझे एक छवि की आवश्यकता क्यों है? –
बीटीडब्ल्यू, जिस व्यक्ति ने मुझे अपने पाठ में कोड बिट्स 'हाइलाइट' की सिफारिश की है: मैं यह कैसे कर सकता हूं? धन्यवाद ... –