OSP Figuras Geométricas 3D
Imagen
Se puede generar una caja (box):
en forma relativemente simple con el código:
```
/**
* www.opensourcephysics.org/
* @author Wolfgang Christian
*/
public class Box3DApp {
public static void main(String[] args) {
// create a drawing frame and a drawing panel
Display3DFrame frame = new Display3DFrame("3D Demo");
frame.setPreferredMinMax(-10, 10, -10, 10, -10, 10);
frame.setDecorationType(org.opensourcephysics.display3d.core.VisualizationHints.DECORATION_AXES);
frame.setAllowQuickRedraw(false); // use shading when rotating
Element block = new ElementBox();
block.setXYZ(0, 0, 0);
block.setSizeXYZ(6, 6, 3);
block.getStyle().setFillColor(Color.RED);
block.getStyle().setResolution(new Resolution(6, 6, 3)); // divide block into subblocks
frame.addElement(block);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
```
ID:(2430, 0)
Parametrización del Display3DFrame
Descripción
La definición de tamaño se realiza con la función setPreferredMinMax y tiene el formato:
```
frame.setPreferredMinMax(minx,maxx,miny,maxy);
```
En esta clase los ejes se denominan adornos y existen diferentes alternativas. Todas ellas se pueden llamar directamente de la clase con org.opensourcephysics.display3d.core.VisualizationHints. En este caso elegimos desplegar ejes:
```
frame.setDecorationType(VisualizationHints.DECORATION_AXES);
```
Finalmente se puede parametrizar como se actualiza la imagen. En este caso evitamos el re dibujar rápido cuando rota:
```
frame.setAllowQuickRedraw(false);
```
Para terminar de definir el fram lo seteamos como visible:
```
frame.setVisible(true);
```
y le incluimos los comando de cierre
```
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
```
ID:(1226, 0)
Agregar Elementos
Descripción
Si deseamos agregar una forma la debemos crear mediante el comando ElementBox:
```
Element block = new ElementBox();
```
La ubicacion del centro de la caja se fija mediante el método setXYZ
```
block.setXYZ(0, 0, 0);
```
El tamaño de la caja se define con el método setSizeXYZ
```
block.setSizeXYZ(6, 6, 3);
```
ID:(1227, 0)
Parametrización de Elementos
Descripción
Para fijar el color del cubo (de fondo) se empela el método setFillColor:
```
block.getStyle().setFillColor(Color.RED);
```
La resolución se puede modificar con el método setResolution creando un objeto del tipo Resolution:
```
block.getStyle().setResolution(new Resolution(6, 6, 3));
```
Finalmente debe ser asociada al frame para que se muestre:
```
frame.addElement(block);
```
ID:(1228, 0)