function [conec,coord] = trelica(a,b)%Função que recebe o % intervalo em x da treliça e retorna as matrizes Nos e barras coord=zeros(1,2);% apenas para mostrar que Nos é matriz conec=zeros(1,2);%apenas para mostrar que barras é matriz n=1; % auxiliar ( numero do nó/vértice) x=a; % x varia entre o intervalo[a,b] de 1 em 1(convenção) h=1; % auxiliar ( numero da barra) while(x<=b) y=0; %y varia de 1 em 1 no intervalo [0,f(x)] while ( y<=1) %% pode se por qualquer f(x) coord(n,1)=x;% colocando as cordenadas do nó coord(n,2)=y; if(((x+1)<=b)&&(y<=1)) %criar barra horizontal p\ dir conec(h,1)=n; s=y; %auxiliar para achar o número do nó que fecha a barra d=0; while(s<=1) %% f(x) %% if(((s)>f(x-1))&&((s)>f(x+1))) if(((s)>1)) d=d+1; endif s=s+1; endwhile; conec(h,2)=s+n-d; h=h+1; endif %%if((y+1)<=f(x)) %criar barra vertical p\ cima %%if((y+1)<=f(x-1)||((y+1)<=f(x+1))) if((y+1)<=1) %criar barra vertical p\ cima if((y+1)<=1) conec(h,1)=n; conec(h,2)=n+1; h=h+1; endif endif %%if(((x+1)<=b)&&(y+1<=f(x+1))&&(y+1<=f(x)))%criar barra %barra na diagonal direita e cima %%if((y+1)<=f(x)||((y+1)<=f(x+2))) if(((x+1)<=b)&&(y+1<=1))%criar barra %barra na diagonal direita e cima if((y+1)<=1) conec(h,1)=n; s=y; d=0; %% while(s<=f(x)) %% if(((s)>f(x-1))&&((s)>f(x+1))) while(s<=1) if(((s)>1)) d=d+1; endif s=s+1; endwhile; conec(h,2)=s+n+1-d; h=h+1; endif endif %%if(((x-1)>=a)&&(y+1<=f(x-1))&&(y+1<=f(x)))%criar barra %barra na diagonal esquerda e cima %%if((y+1)<=f(x-2)||((y+1)<=f(x))) if(((x-1)>=a)&&(y+1<=1))%criar barra %barra na diagonal esquerda e cima if((y+1)<=1) conec(h,1)=n; s=y; d=0; %% while(s<=Funcao(x-1)) %% if(((s)>Funcao(x-2))&&((s)>Funcao(x))) while(s<=1) if((s)>1) d=d+1; endif s=s+1; endwhile; conec(h,2)=n+1-s+d; h=h+1; endif endif n=n+1; %próximo nó %% if ((y>f(x-1))&&(y>f(x+1))) if (y>1) n=n-1; %se o nó criado acima nao possui vizinho na endif % horizontal, ele n existe y=y+1; endwhile x=x+1; endwhile save coord.txt coord; save conec.txt conec; end