quinta-feira, 19 de junho de 2014

Matlab - Handle Graphics [parte 1]


TIPOS DE OBJETOS GRÁFICOS

O Matlab disponibiliza dois tipos de objetos gráficos: os objetos gráficos principais (core objects) e os objetos compostos (composse objects). Os objetos gráficos principais são usados pelas funções de alto nível de traçado de gráficos e pelos objetos compostos para criação de objetos de visualização. Os objetos compostos subdividem-se nas seguintes categorias:
  • Objetos de visualização (Plot Objects)
  •             Obejtos de anotação (Annotation Objects)
  •             Objetos de grupo (Group Objects)
  •             Objetos de interface com o utilizador (UI Objects)


A tabela abaixo representa as funções que permitem a criação de objetos gráficos principais:


Função
Descrição
Axes
Define o sistema de eixos para a visualização de imagens
Image
Representação 2D de uma matriz, em que os valores numéricos são mapeados em cores. Este objeto pode resultar de matrizes 3D, correspondendo a valores RGB
Light
Fonte de luz que direcional localizada num eixo
Line
Objeto linha que resulta da conexão de dois pontos
Patch
Polígonos com a orientação e a posição definidas pelo sistema de coordenadas do objeto axes
Rectangle
Objeto 2D (figuras geométricas retangulares ou elípticas)
Surfasse
Representação 3D de dados matriciais
text
Conjunto de caracteres posicionados no sistema de coordenadas do objeto axes





INSPEÇÃO E ALTERAÇÃO DE PROPRIEDADES:

O matlab permite a inspeção e a alteração das propriedades dos diferentes objetos gráficos através das funções get e set, respectivamente.

Com a função get, pode inspecionar as propriedades de um objeto, identificando por uma determinada referência (handle), nas formas pros = get(handle) ou valor = get(handle, ‘Propriedade). No caso da primeira invocação, o retorno da função get é uma estrutura constituída pelo nome das diferentes propriedades do objeto e pelo respectivo valor. A segunda sintaxe retorna exclusivamente o valor da propriedade cujo nome é passado como argumento de entrada.

O exemplo a seguir ilustra esta função, criando três referencias (handle1, handle2, e handle3) correspondentes ao traçado gráfico de três funções (y1, y2 e y3). As propriedades dos objetos gráficos criados são armazenados nas estruturas result1, result2 e result3, respectivamente:

 %Definição das funções  
 x = 0:0.1:4*pi; y1 = sin(x); y2 = sin(x + pi/4); y3 = sin(x + pi/2);  
 %Criação dos objetos  
 hold on;  
 handle1 = plot(x, y1); handle2 = plot(x, y2); handle3 = plot(x, y3);  
 hold off;  
 disp('Propriedade do objeto 1:'); result1 = get(handle1)  
 disp('Propriedade do objeto 2:'); result2 = get(handle2)  
 disp('Propriedade do objeto 3:'); result3 = get(handle3)  




Propriedade do objeto 1:
result1 =            DisplayName: ''            Annotation: [1x1 hg.Annotation]                Color: [0 0 1]             LineStyle: '-'             LineWidth: 0.5000                Marker: 'none'            MarkerSize: 6       MarkerEdgeColor: 'auto'       MarkerFaceColor: 'none'                 XData: [1x126 double]                 YData: [1x126 double]                 ZData: [1x0 double]          BeingDeleted: 'off'         ButtonDownFcn: []              Children: [0x1 double]              Clipping: 'on'             CreateFcn: []             DeleteFcn: []            BusyAction: 'queue'      HandleVisibility: 'on'               HitTest: 'on'         Interruptible: 'on'              Selected: 'off'    SelectionHighlight: 'on'                   Tag: ''
                  Type: 'line'         UIContextMenu: []              UserData: []               Visible: 'on'                Parent: 173.0018             XDataMode: 'manual'           XDataSource: ''           YDataSource: ''           ZDataSource: ''


Propriedade do objeto 2:
result2 =            DisplayName: ''            Annotation: [1x1 hg.Annotation]                 Color: [0 0 1]             LineStyle: '-'             LineWidth: 0.5000                Marker: 'none'            MarkerSize: 6       MarkerEdgeColor: 'auto'       MarkerFaceColor: 'none'                 XData: [1x126 double]                 YData: [1x126 double]                 ZData: [1x0 double]          BeingDeleted: 'off'         ButtonDownFcn: []              Children: [0x1 double]              Clipping: 'on'             CreateFcn: []             DeleteFcn: []            BusyAction: 'queue'      HandleVisibility: 'on'               HitTest: 'on'         Interruptible: 'on'              Selected: 'off'    SelectionHighlight: 'on'                   Tag: ''
                  Type: 'line'         UIContextMenu: []              UserData: []               Visible: 'on'                Parent: 173.0018             XDataMode: 'manual'           XDataSource: ''           YDataSource: ''           ZDataSource: ''


Propriedade do objeto 3:
result3 =            DisplayName: ''            Annotation: [1x1 hg.Annotation]                 Color: [0 0 1]             LineStyle: '-'             LineWidth: 0.5000                Marker: 'none'            MarkerSize: 6       MarkerEdgeColor: 'auto'       MarkerFaceColor: 'none'                 XData: [1x126 double]                 YData: [1x126 double]                 ZData: [1x0 double]          BeingDeleted: 'off'         ButtonDownFcn: []              Children: [0x1 double]              Clipping: 'on'             CreateFcn: []             DeleteFcn: []            BusyAction: queue'      HandleVisibility: 'on'               HitTest: 'on'         Interruptible: 'on'              Selected: 'off'    SelectionHighlight: 'on'                   Tag: ''
                  Type: 'line'         UIContextMenu: []              UserData: []               Visible: 'on'                Parent: 173.0018             XDataMode: 'manual'           XDataSource: ''           YDataSource: ''           ZDataSource: ''


A função set pode ser utilizada para listar os diferentes valores que uma propriedade pode assumir, apresentando-se entre chave ({}) o valor que a propriedade assume por omissão. Quando utilizada a sintaxe set(handle), ‘Propriedade’), são listada todas as opções possíveis que a propriedade passada como argumento pode assumir. O código seguinte mostra, por exemplo, que a propriedade LineStyle do objeto handle1 pode assumir os valore --, :, -. E none, sendo – o valor predefinido.

Propriedade LineStyle do objeto 1:

[ {-} | -- | : | -. | none ]


No exemplo seguinte, são alteradas as propriedades LineWidth, LineStyle e Color dos objetos criados no exemplo anterior. 


 %---------------------------------------------------------Exemplo 2  
 % Lista de opções de LineStyle   
 disp('Propriedade LineStyle do objeto 1:');  
 set(handle1, 'LineStyle');  
 %Alteração de algumas propriedades do objetos  
 set(handle1, 'LineWidth', 4, 'LineStyle', '--', 'Color', [1 0 0]);  
 set(handle2, 'LineWidth', 3, 'LineStyle', '-.');  
 set(handle3, 'LineWidth', 2, 'LineStyle', ':', 'Color', [0 0 0]);  
 disp('Propriedade do objeto 1:'); result1 = get(handle1)  
 disp('Propriedade do objeto 2:'); result2 = get(handle2)  
 disp('Propriedade do objeto 3:'); result3 = get(handle3)  


No próximo post será discutido principais propriedades do objeto figure, objeto axes, objeto text, objeto line e objeto annotation.

Nenhum comentário:

Postar um comentário