Pregunta

Estoy tratando de dibujar un plano transparente (X [0..100], Y [0..100], Z = 0) en Java 3D, pero no puedo entender cómo. He buscado en la página del tutorial y todavía no puedo encontrar ningún programa de muestra.

Estoy intentando encontrar un "avión". objeto como BranchGroup para agregar a mi TransformGroup existente, pero no existe tal objeto plano; ¿Qué debo usar? ¿Y cómo lo hago transparente?

¿Fue útil?

Solución

Este es un fragmento de código que utilicé en un histograma; esto podría funcionar en un plano plano.

private static void createAppearances() {
    normalAppearance = new Appearance();
    normalAppearance.setMaterial(normalMaterial);
    selectedAppearance = new Appearance();
    selectedAppearance.setMaterial(selectedMaterial);
    TransparencyAttributes ta = new TransparencyAttributes();

    ta.setTransparencyMode (TransparencyAttributes.BLENDED);
    ta.setTransparency (DEFAULT_HISTOGRAM_ALPHA);

    normalAppearance.setTransparencyAttributes (ta);
    selectedAppearance.setTransparencyAttributes(ta);
}

La clave es TransparencyAttributes si no recuerdo mal. Desearía poder contarte más, pero no puedo hacer que esto se compile en este momento (faltan algunas bibliotecas antiguas que no están relacionadas con 3D).

Otros consejos

Pruebe este código ...

BranchGroup group = new BranchGroup();  //Content branch.
PolygonAttributes p = new PolygonAttributes();  //Not sure how to make it transparent/try code above.
Appearance planeAppearance = new Appearance();
planeAppearance.setPolygonAttributes (p);
Color3f planeColor = new Color3f (1.0f, 1.0f, 1.0f);  //This makes it white.
ColoringAttributes planeCA = new ColoringAttributes (planeColor, 1);
planeAppearance.setColoringAttributes(planeCA);
QuadArray plane = new QuadArray (4, QuadArray.COORDINATES);  //This makes the plane.
  plane.setCoordinate(0, new Point3f(-5f, -5f, -15f));  //You specify your own cornerpoints...
  plane.setCoordinate(1, new Point3f(5f, -5f, -15f));
  plane.setCoordinate(2, new Point3f(5f, 5f, -15f));
  plane.setCoordinate(3, new Point3f(-5f, 5f, -15f));
group.addChild(new Shape3D(plane, planeAppearance));  //Add plane to content branch.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top