دوشنبه, ۱۸ آذر ۱۳۹۸، ۰۲:۲۰ ب.ظ
کد یک ویلای نیمه کاره در متلب
%%%%%%%%%%%%%%%%%%%%%%%%%%-----------simulation area-----------%%%%%%%%%%%%%%%%%%%%%% % devloped in Iran(ardebil) % % Copyright (C) 2017(1396) by moussa hasanzadeh. % %All rights reserved. % %programed in mathlab 2016 % %gmail:mo30no@gmail.com %phone: 09147082079 function vlia1 clc clear; delete(allchild(0)); sideN=4; t1=linspace(0,1,sideN+1);%vector between 0 and 1 X=-sin(2*pi*t1+(pi/sideN));%node X coordinates with phaze shift Y=-cos(2*pi*t1+(pi/sideN));%node Y coordinates with phaze shift X=((((X-min(X))/(max(X)- min(X)))*2)-1)./5;%normalize and schale X Y=((((Y-min(Y))/(max(Y)- min(Y)))*2)-1)./5;%normalize and schale Y Z= (1:length(Y))*0 ; for x=0:20:40 for y=0:20:40 for z=1:15 plot3(X+x,Y+y,Z+z,'k');hold on plot3([X+x;X+x],[Y+y;Y+y],[Z+z*0;Z+z],'k');hold on end end end xVec=[0,20,40,40,20,0,0]; yVec=[0,0,0,40,40,40,0]; zVec1=yVec*0; zVec1([2,5])=zVec1([2,5])+3; [xVec,yVec]=dividerE(xVec,yVec,10); zVec=yVec*0; [~,zVec1]=dividerE(xVec,zVec1,10); hj1=fill3([xVec],[yVec],[zVec+5],'w');alpha(hj1 ,1) hj1=fill3([xVec],[yVec],[zVec+5+0.2],'k');alpha(hj1 ,0.2) hj3=fill3([xVec;xVec],[yVec;yVec],[zVec+5;zVec+5+0.2],'k');alpha(hj3 ,0.7) hj2=fill3([xVec],[yVec],[zVec+10],'w');alpha(hj2 ,1) hj2=fill3([xVec],[yVec],[zVec+10+0.2],'k');alpha(hj2 ,0.2) hj3=fill3([xVec;xVec],[yVec;yVec],[zVec+10;zVec+10+0.2],'k');alpha(hj3 ,0.7) hj3=fill3([xVec],[yVec],[zVec+15],'k');alpha(hj3 ,0.2) hj3=fill3([xVec;xVec],[yVec;yVec],[zVec+15;zVec+15+0.2],'k');alpha(hj3 ,0.7) xVecPentHous=[0,20,40,20,0]; yVecPentHous=[0,0,0,0,0] ; zVecPentHous=[15,15,15,18,15]; for mm=1:39 % fill3(xVecPentHous,yVecPentHous+mm,zVecPentHous,'k--') km=fill3(xVecPentHous,yVecPentHous+mm,zVecPentHous,'g-');hold on alpha(km,0.2) end fill3([xVec],[yVec],[zVec+15],'r') zVec1=zVec1+15; fill3([xVec],[yVec],[zVec1],'r-','edgecolor','k') fill3([xVec],[yVec],[zVec1-0.2],'r-','edgecolor','k') hj1=fill3([xVec*2]-20,[yVec*2]-20,[zVec],'g');alpha(hj1 ,1) yardVect=[13:length(xVec),1:10] hj1=fill3([[xVec(yardVect)*2]-20;[xVec(yardVect)*2]-20],[[yVec(yardVect)*2]-20;[yVec(yardVect)*2]-20],[zVec(yardVect);zVec(yardVect)+2],'r'); for difIndex=1:10 zVec=zVec+0.2; hj1=plot3([xVec(yardVect)*2]-20,[yVec(yardVect)*2]-20,[zVec(yardVect)],'ks-','lineWidth',1);alpha(hj1 ,1);hold on end zVec(11:12)=zVec(11:12)+1; xVec(11)= xVec(10); xVec(12)= xVec(13); hj1=plot3([xVec*2]-20,[yVec*2]-20,[zVec],'k-','lineWidth',2);alpha(hj1 ,1);hold on zVec([10,13])=0; door=[10,11,12,13,10] matrixObj.x=[xVec(door)*2]-20; matrixObj.y=[yVec(door)*2]-20; matrixObj.z=[zVec(door)]; [ newx, newy, newz]=rotateParameter(matrixObj,[0,0,1],90); hj1=fill3(newx-sqrt((xVec(10)-xVec(13)).^2)*1.3, newy-32, newz ,'w','lineWidth',2);alpha(hj1 ,1);hold on end function [X,Y]=dividerE(X,Y,n) T1=0; T2=0; for i=1:length(X)-1 temp1=0; temp1=linspace(X(i),X(i+1),n+2) ; T1=[T1,temp1(1:end-1)]; end T1=[T1,temp1(end)]; X=T1(2:end); for i=1:length(Y)-1 temp2=0; temp2=linspace(Y(i),Y(i+1),n+2) ; T2=[T2,temp2(1:end-1)]; end T2=[T2,temp2(end)]; Y=T2(2:end); end function [ newx, newy, newz]=rotateParameter(matrixObj,azel,alpha) u = azel(:)/norm(azel); alph = alpha*pi/180; cosa = cos(alph); sina = sin(alph); vera = 1 - cosa; x = u(1); y = u(2); z = u(3); rot = [cosa+x^2*vera x*y*vera-z*sina x*z*vera+y*sina; ... x*y*vera+z*sina cosa+y^2*vera y*z*vera-x*sina; ... x*z*vera-y*sina y*z*vera+x*sina cosa+z^2*vera]'; x = matrixObj.x; y = matrixObj.y; z = matrixObj.z; [m,n] = size(z); if numel(x) < m*n [x,y] = meshgrid(x,y); end [m,n] = size(x); newxyz = [x(:) , y(:) , z(:) ]; newxyz = newxyz*rot; newx = reshape(newxyz(:,1),m,n); newy = reshape(newxyz(:,2),m,n); newz = reshape(newxyz(:,3),m,n); end
این هم یک تصویر از نتیجه کار:
۹۸/۰۹/۱۸