# graphics_entities

Descrição das estruturas de dados de entidades gráficas

## Descrição

No Scilab, uma janela de gráficos e os desenhos contidos nela são representados por entidades hierárquicas. O topo do nível hierárquico é a Figure (figura). cada Figure define pelo menos um galho do tipo Axes (eixos). Cada entidade Axes contém um conjunto de folhas que são objetos gráficos básicos como Polylines, Rectangles, Arcs, Segs,... (poligonais, retângulos, arcos e segmentos). Também pode ser do tipo Compound (composto) que são conjuntos recursivos de entidades. O interesse principal no novo modo de gráficos é facilitar a mudança de propriedades. O novo modo de gráficos fornece um conjunto de rotinas gráficas de alto-nível (ver set, get) utilizadas para controlar propriedades dos objetos como dados, cores, coordenadas e escalas, cores e aparências sem que seja necessário entrar novamente os comandos de gráficos iniciais.

Entidades gráficas do Scilab estão associadas a variáveis do tipo `handle`. (manipuladores). O manipulador é um identificador único que é associado a cada instância de uma entidade gráfica criada. Utilizando-se manipuladores, é possível tanger propriedades de entidades através das rotinas "set" e "get". Os manipuladores também são utilizados para manipular objetos gráficos, para movê-los, para fazer cópias ou deletá-los.

Figure:

  a entidade figura é o topo da hierarquia de entidades gráficas. Esta entidade define os parâmetros para a figura em si tanto quanto os valores padrões dos parâmetros para criação de galhos. Os galhos das figuras são as entidades de eixos.

  O manipulador da figura corrente (a figura para onde os desenhos foram enviados) pode ser obtido utilizando-se `get("current_figure")` e pode ser ajustado utilizando-se `set("current_figure",h)`, onde `h` pode ser tanto um manipulador da figura ou um idenficador da figura `figure_id` neste último caso, se não existir, um é automaticamente criado.

  Veja figure_properties para detalhes.

Axes:

  a entidade de eixos está no segundo nível da hierarquia de entidades gráficas. Esta entidade define parâmetros para a mudança de coordenadas dos eixos e o desenho dos eixos tanto quanto os parâmetros padrões para criação de seus galhos. Ver axes_properties for details. para detalhes. O manipulador dos eixos correntes pode ser obtido utilizando-se `get("current_axes")`.

Compound:

  a entidade composta é simplesmente um vetor de galhos com uma única propriedade (propriedade de visibilidade). É usada para colar um conjunto de entidades.

  Ver as documentações glue, unglue e Compound_properties.

Axis:

  a entidade eixo é uma folha da hierarquia de entidades gráficas. Esta entidade define os parâmetros de escala de um eixo e aparência.

  Ver axis_properties para detalhes.

Polyline:

  a entidade poligonal é uma folha na hierarquia de entidades gráficas. define propriedades de desenho de poligonais e extensões poligonais 2d e 3d.

  Ver polyline_properties para detalhes.

Arc:

  a entidade arco é uma folha na hierarquia de entidades gráficas. Esta entidade define parâmetros para elipses e partes de elipses.

  Ver arc_properties para detalhes.

Rectangle:

  a entidade retângulo é uma folha na hierarquia de entidades gráficas. Esta entidade define parâmetros para retângulos e retângulos preenchidos.

  Ver rectangle_properties para detalhes.

Surface:

  a entidade superfície é uma folha na hierarquia de entidades gráficas. possui sub-tipos `Fac3d` ou `Plot3d`. Esta entidade define parâmetros para esboço de superfícies 3d.

  Ver surface_properties para detalhes.

Fec:

  a entidade Fec é uma folha na hierarquia de entidades gráficas. Representa esboços de elementos 2d finitos.

  Ver fec_properties para detalhes

Grayplot:

  a entidade Grayplot é uma folha na hierarquia de entidades gráficas. Representa esboços 2d de superfícies utilizando cores e imagens.

  Ver grayplot_properties para detalhes.

Matplot:

  a entidade Matplot é uma folha na hierarquia de entidades gráficas. Representa esboços 2d utilizando matrizes de inteiros.

  Ver Matplot_properties para detalhes.

Segs:

  a entidade de segmentos é uma folha na hierarquia de entidades gráficas. Esta entidade define parâmetros um conjunto de flechas ou segmentos coloridos.

  Ver segs_properties para detalhes

Champ:

  a entidade Champ é uma folha na hierarquia de entidades gráficas. Esta entidade define parâmetros para esboços 2d de campos vetoriais.

  Ver champ_properties para detalhes.

Text:

  a entidade texto é uma folha na hierarquia de entidades gráficas. Esta entidade define parâmetros para impressão de strings.

  Ver text_properties para detalhes.

Label:

  a entidade rótulo é um galho da entidade gráfica `Axes` (de eixos). Esta entidade define parâmetros para os rótulos dos 3 eixos x, y e z desenhados em uma janela de gráficos.

  Ver label_properties para detalhes.

Legend:

  a legenda é uma folha na hierarquia de entidades gráficas. Esta entidade define parâmetros para legendas desenhadas impressas sob gráficos `plot2dx`. Esta entidade requer futuros desenvolvimentos.

  Ver legend_properties para detalhes.

## Exemplos

    //execute este exemplo linha por linha

    scf() //criando figura no modo de entidade

    //obtendo o manipulador da entidade Figure e exibindo suas propriedades
    f=get("current_figure")
    a=f.children // o manipulador da galho Axes
    x=(1:10)';  plot2d(x,[x.^2 x.^1.5])
    e=a.children //Compound de duas poligonais

    p1=e.children(1) //as propriedades das últimas poligonais desenhadas

    p1.foreground=5;  // mudando a cor da poligonal
    e.children.thickness=5; // mudando a espessura das poligonais

    delete(e.children(2))

    move(e.children,[0,30]) //transladando a poligonal

    a.axes_bounds=[0 0 0.5 0.5];

    subplot(222) //criando uma nova entidade Axes
    plot(1:10);
    a1=f.children(1); //obtendo seu manipulador
    copy(e.children,a1); //copiando a poligonal do primeiro esboço nos novos eixos
    a1.data_bounds=[1 0;10 100]; //mudando os limites dos eixos

    set("current_figure",10) //criando uma nova figura com figure_id=10
    plot3d() //os desenhos são enviados à nova figura com figure_id=10
    set("current_figure",f) //torna a figura anterior a corrente
    plot2d(x,x^3)  //os desenhos são enviados à figura inicial

## Ver Também

- set
- get
- move
- draw
- delete
- object_editor
- plot
- surf