Вы можете изменить прозрачность фигур на 3D-дисплее, изменив атрибуты прозрачности в классе стилей на основе атрибута видимости агента.Например, ваши агенты могут проверять свою текущую позицию в трехмерном пространстве и возвращать isVisible () true только тогда, когда агент находится в плоскости пространства, которую вы хотите визуализировать.Это покажет только агенты на 3D-дисплее, которые существуют на заданной вами плоскости, которая может иметь любую ориентацию x, y, z в пространстве.В вашем классе стилей вам потребуется обновить прозрачность в методе getAppearance (...) следующим образом:
public TaggedAppearance getAppearance(MyAgent agent, TaggedAppearance taggedAppearance, Object shapeID) {
if (taggedAppearance == null) {
taggedAppearance = new TaggedAppearance();
// Customize your agent style here...
AppearanceFactory.setMaterialAppearance(taggedAppearance.getAppearance(), Color.white);
}
if (trans == null) {
trans = new TransparencyAttributes();
trans.setCapability(TransparencyAttributes.ALLOW_VALUE_READ);
trans.setCapability(TransparencyAttributes.ALLOW_VALUE_WRITE);
trans.setCapability(TransparencyAttributes.ALLOW_MODE_READ);
trans.setCapability(TransparencyAttributes.ALLOW_MODE_WRITE);
trans.setTransparencyMode(TransparencyAttributes.FASTEST);
taggedAppearance.getAppearance().setTransparencyAttributes(trans);
}
if (agent.isVisible())
trans.setTransparency(0.0f);
else
trans.setTransparency(1.0f);
return taggedAppearance;
}
Вы также можете настроить значение прозрачности от 0 до 1, чтобы обеспечить разные уровни прозрачности,так что представляющие интерес агенты являются чисто непрозрачными (0,0f), тогда как агенты на периферии очень прозрачны (0,8f).