شبیه‌سازی شبکه‌های بی سیم و کامپیوتری
شبیه سازی تخصصی شبکه‌های بی سیم و کامپیوتری مقاطع کارشناسی تا دکترا
  • شبیه سازی تخصصی شبکه‌های بی سیم و کامپیوتری مقاطع کارشناسی تا دکترا

مشخصات بلاگ
شبیه‌سازی شبکه‌های بی سیم و کامپیوتری

امکان سفارش، شبیه سازی مقاله و پایان نامه وجود دارد،
مطالب، با ذکر منبع قابل انتشار در سایت ها و وبلاگ ها و.. می باشد.
جهت دریافت مشاوره رایگان تماس بگیرید:

شماره تماس: 09147082079-0098
آیدی تلگرامی:https://t.me/MuosSA_NbO
جی میل :mo30no@gmail.com

تمامی کدهای این وبلاگ در حال حاضر به زبان متلب می باشد

«آنچه می‌دانیم ناچیز و آنچه نمی‌دانیم عظیم و وسیع است»
$$پیر سیمون لاپلاس$$

سه شنبه, ۲۱ تیر ۱۴۰۱، ۰۸:۳۹ ب.ظ

حرکت انمیشن وار چند ضلعی روی یک صفحه دلخواه.

در این پست یک صفحه که فرمول آن در سطر 30 قرار دارد(و شما می توانید فرمول آن را تغییر دهید، فقط ضریب z غیر صفر باشد)، و یک چند ضلعی (دایره) روی آن به شکل تصادفی گردش می‌کند، به عبارتی هدف ما این بود که بتوانیم چند ضلعی یا هر تابع دیگری را روی صفحه به سمت راست یا چپ نسبی یا بالا و پایین نسبی صفحه گردش بدهیم.

 

کد اجرایی:

%%%%%%%%%%%%%%%%%%%%%%%%%%-----------software details-----------%%%%%%%%%%%%%%%%%%%%%%

%devloped in Iran(ardebil)                                       %
%Copyright (C) 2017(1396) by moussa hasanzadeh as the head devloper %%
%All rights reserved.                                             %
%programed in mathlab 2016
%gmail:mo30no@gmail.com
%phone 09147082079


%% clear and close all child forms
delete(allchild(0));close all;
clear;
clc;

%% plot coordinates system in 3D area and labeling
plot3([-5;5],[-5;5]*0,[-5;5]*0,'k');hold on;
plot3([-5;5]*0,[-5;5],[-5;5]*0,'k');hold on
plot3([-5;5]*0,[-5;5]*0,[-5;5],'k');hold on
text([-6;6],[-6;6]*0,[-6;6]*0,{'-X','X'});hold on;
text([-6;6]*0,[-6;6],[-6;6]*0,{'-Y','Y'});hold on
text([-6;6]*0,[-6;6]*0,[-6;6],{'-Z','Z'});hold on
xlabel('X');
ylabel('Y');
zlabel('Z');


%% convert implicit plan formula as parametric form
syms x y z scalerVal t;
plan='20*x+3*y+2*z+1';%% plan as inplicit form
x=[-3:3];
y=[-3:3];
z=[-3:3];
%function to draw on the plan
side=50;
t=linspace(0,2*pi,side+1);
p=cos(t) ;%x coordinate
q=sin(t)  ;% y coordinate

pluIdex=strfind(plan,'+');%% find plus index in plan formula
scalerIndex=strsplit(plan,'+');
for s=1:length(scalerIndex)
    scalerVal=str2num(scalerIndex{s});
    if ~isempty(scalerVal)
        break;
    else
        scalerVal=0;
    end
end

%% extract z coff

zIndex=strfind(plan,'z');
if ~isempty(zIndex)
    pluIZ=pluIdex(pluIdex<zIndex);
    if ( pluIZ)
        pluIZ=pluIZ(end);
        cofZIndex=pluIZ+1:zIndex-2;
        cofZ=str2double(plan(cofZIndex));
    else
        if (zIndex>1)
            pluIZ=1;
            cofZIndex=pluIZ:zIndex-2;
            cofZ=str2double(plan(cofZIndex));
        else
            cofZ=1;
        end
    end
else
    cofZ=0;

end
%% extract y coff

yIndex=strfind(plan,'y');
if ~isempty(yIndex)
    pluIY=pluIdex(pluIdex<yIndex);
    if ( pluIY)
        pluIY=pluIY(end);
        cofYIndex=pluIY+1:yIndex-2;
        cofY=str2double(plan(cofYIndex));
    else
        if (yIndex>1)
            pluIY=1;
            cofYIndex=pluIY:yIndex-2;
            cofY=str2double(plan(cofYIndex));
        else
            cofY=1;
        end
    end
else
    cofY=0;

end
%% extract x coff
xIndex=strfind(plan,'x');
if ~isempty(xIndex)
    pluIX=pluIdex(pluIdex<xIndex);
    if ( pluIX)
        pluIX=pluIX(end);
        cofXIndex=pluIX+1:xIndex-2;
        cofX=str2double(plan(cofXIndex));
    else
        if (xIndex>1)
            pluIX=1;
            cofXIndex=pluIX:xIndex-2;
            cofX=str2double(plan(cofXIndex));
        else
            cofX=1;
        end
    end
else
    cofX=0;

end

coff=[cofX,cofY,cofZ];


funcIndex=find(coff);funcIndex=funcIndex(end);
switch funcIndex
    case 1

        [y,z]=meshgrid(y,z);
        x=-(coff(2)/coff(1))*y -(coff(3)/coff(1))*z-scalerVal/coff(1);
        ft=(coff(2)/coff(1))*p +(coff(3)/coff(1))*q+scalerVal/coff(1);
        plot3(ft,p,q)

    case 2


        [x,z]=meshgrid(x,z);
        y=(coff(1)/coff(2))*x +(coff(3)/coff(2))*z+scalerVal/coff(2);
        ft=(coff(1)/coff(2))*p +(coff(3)/coff(2))*q+scalerVal/coff(2);
        plot3(p,ft,q)
    case 3

        [x,y]=meshgrid(x,y);
        z=(coff(1)/coff(3))*x +(coff(2)/coff(3))*y+scalerVal/coff(3);
        for s=1:50
            p=cos(t)+cos(rand*2-1)  ;%x coordinate
            q=sin(t)+sin(rand*2-1) ;% y coordinate
            ft=(coff(1)/coff(3))*p +(coff(2)/coff(3))*q+scalerVal/coff(3);
            surf(x,y,z,'FaceColor','g')



            h=plot3(p ,q ,ft,'k');
            pause(.5)
            delete(h);
        end
end








%%%%%%%%%%%%%%%%%%%%%%%%%%-----------software details-----------%%%%%%%%%%%%%%%%%%%%%%

%devloped in Iran(ardebil)                                       %
%Copyright (C) 2017(1396) by moussa hasanzadeh as the head devloper %%
%All rights reserved.                                             %
%programed in mathlab 2016
%gmail:mo30no@gmail.com
%phone 09147082079

نمونه ویدئوی خروجی:

 

دانلود کد 

 

موافقین ۰ مخالفین ۰ ۰۱/۰۴/۲۱
موسی حسن زاده

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی