Как нарисовать прозрачную плоскость в Java 3D?

StackOverflow https://stackoverflow.com/questions/1214244

  •  06-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь нарисовать прозрачную плоскость (X [0..100], Y [0..100], Z = 0) в Java 3D, но не могу понять, как. Я посмотрел страницу учебника и до сих пор не могу найти примеры программ.

Я пытаюсь найти "плоскость" объект как BranchGroup для добавления в существующую TransformGroup, но такого плоского объекта не существует; что я должен использовать? И как мне сделать его прозрачным?

Это было полезно?

Решение

Это фрагмент кода, который я использовал на гистограмме - он может работать на плоской плоскости.

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);
}

Ключ - это TransparencyAttributes , если я правильно помню. Хотелось бы рассказать вам больше, но я не могу заставить это скомпилировать прямо сейчас (без некоторых старых библиотек, не связанных с 3D).

Другие советы

Попробуйте этот код ...

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.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top