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

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

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

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

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

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

برای اینکه مشخص شود که نقطه‌ای در زاویه دید یک نقطه مرجع دیگر با زاویه مشخص شده با دو خط قرار دارد یا نه، کافی که مختصات نقطه هدف و انتهای دو خط را مشخص  کرده و پس از انتقال مبداء به نقطه مرجع  و تبدیل آن‌ها به مختصات قطبی در 360 درجه، مقادیر قطبی انتهای دو خط با مقادیر نقطه هدف مقایسه شود.

 

 کد متلب کل عملیات فوق در زیر:(the related matlab code for this operation)

function fg=IsPointInsideAngle(basePoint,leftPoint,rightPoint,quPoint )

Px=basePoint.x;
Py=basePoint.y;


Ax=leftPoint.x;
Ay=leftPoint.y;

 Cx=rightPoint.x;
Cy=rightPoint.y;


 Dx=quPoint.x;
Dy=quPoint.y;
 

% transformed Ax and Cx
tAx= Ax-Px;
tAy= Ay-Py;

tCx= Cx-Px;
tCy= Cy-Py;

tDx= Dx-Px;
tDy= Dy-Py;


[tAtet,tArho]=cart2pol(tAx,tAy);tAtet=Angle2pol_To_1pol(tAtet,1);
[tCtet,tCrho]=cart2pol(tCx,tCy);  tCtet=Angle2pol_To_1pol(tCtet,1);
[tDtet,tDrho]=cart2pol(tDx,tDy); tDtet=Angle2pol_To_1pol(tDtet,1);

fg=isItBetweenAng(tAtet,tDtet,tCtet);

 
figure;plot([Px, Ax],[Py, Ay],'c');hold on;plot([Px,  Cx],[Py,  Cy],'c');hold on;plot( Dx, Dy,'rO'); 
 switch fg
 
       case 1
             title( 'it is in angle point'  )
       case 0
             title('it is  not in angle point')
 end

end



function  fg=isItBetweenAng(num1,quNum,num2)



fg=0;
[val,~]=sort([num1,num2],'ascend');

if (num1<=pi  && num2<=pi  ) || (num1 >=pi  && num2>=pi  )
      if  quNum>=val(1) && quNum<=val(2)
            fg=1;
      end
else
      
if val(2)-val(1)>pi
  if  (quNum<=val(1) && quNum>=0 ) ||   (quNum>=val(2) && quNum<=val(2) )
        fg=1;
  end
else
      if  (quNum>=val(1) && quNum<=pi ) ||   (quNum>=pi && quNum<=val(2) )
            fg=1;
      end
      
end
end
end


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

برای فراخوانی این تابع می‌توانید از کد زیر استفاده کنید:( calling script of th above function)

 

basePoint.x=4;
basePoint.y=8;
          
leftPoint.x=16;
leftPoint.y=18;
          
rightPoint.x=20;
rightPoint.y=6;
          
quPoint.x=12;
quPoint.y=8;          
fg2=IsPointInsideAngle(basePoint,leftPoint,rightPoint,quPoint );

 

خروجی به شکل 1و 0 خواهد بود.

 the output will be as 1 , 0  or true and false

 

 

 

موافقین ۰ مخالفین ۰ ۹۸/۱۰/۰۵
موسی حسن زاده

نظرات  (۰)

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

ارسال نظر

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