وبلاگ تخصصی متلب و نقشه برداری

۱ مطلب با کلمه‌ی کلیدی «برنامه نویسی تقاطع» ثبت شده است

برنامه زیر را در متلب کپی کنید

clc
clear all
format long g
%barname taghato va tarfi%
%noghat az chap be rast hastand%
q=input('baraye taghato 1 & baraye tarfi 2 =');
w=input('baraye darage 1 & baraye gerad 2 =');
if q==1;
    xa=input('xa=');ya=input('ya=');
    xb=input('xb=');yb=input('yb=');
    al=input('alfa=');be=input('beta=');
    if w==1;
        alfa=al;
        beta=be;
    elseif w==2;
        alfa=(al*180)/200;
        beta=(be*180)/200;
    end;
    omega=180-(alfa+beta);
    dxab=xb-xa;dyab=yb-ya;
    lab=sqrt(dxab^2+dyab^2);vab=atand(abs(dxab/dyab));
    if dxab>=0&dyab>=0;
        gab=vab;
    elseif dxab>=0&dyab<=0;
        gab=180-vab;
    elseif dxab<=0&dyab<=0;
        gab=180+vab;
    elseif dxab<=0^dyab>=0;
        gab=360-vab;
    end;
    gam=gab+alfa;lam=(lab*sind(beta))/sind(omega);
    xm=xa+(lam*sind(gam));
    ym=ya+(lam*cosd(gam));
    m=[xm ym]
elseif q==2;
    xa=input('xa=');ya=input('ya=');
    xb=input('xb=');yb=input('yb=');
    xc=input('xc=');yc=input('yc=');
    al=input('alfa=');be=input('beta=');
    if w==1;
        alfa=al;
        beta=be;
    elseif w==2;
        alfa=(al*180)/200;
        beta=(be*180)/200;
    end;
    xn=(xa*cotd(alfa)+xc*cotd(beta)+(ya-yc))/(cotd(alfa)+cotd(beta));
    yn=(ya*cotd(alfa)+yc*cotd(beta)+(xc-xa))/(cotd(alfa)+cotd(beta));
    dxbn=xn-xb;dybn=yn-yb;
    vbn=atand(abs(dxbn/dybn));
    if dxbn>=0&dybn>=0;
    gbn=vbn;
    elseif dxbn>=0&dybn<=0;
    gbn=180-vbn;
    elseif dxbn<=0&dybn<=0;
    gbn=180+vbn;
    elseif dxbn<=0&dybn>=0;
    gbn=360-vbn;
    end;
    dxab=xb-xa;dyab=yb-ya;
    vab=atand(abs(dxab/dyab));
    if dxab>=0&dyab>=0;
    gab=vab;
    elseif dxab>=0&dyab<=0;
    gab=180-vab;
    elseif dxab<=0&dyab<=0;
    gab=180+vba;
    elseif dxab<=0&dyab>=0;
    gab=360-vab;
    end;
    if
    b1=gba-gbn;a=180-(b1+alfa);
    dxab=xb-xa;dyab=yb-ya;
    lab=sqrt(dxab^2+dyab^2);
    if gba>=180;
    gab=180-(360-gba);
    elseif gba<180;
    gab=360-(180-gba);
    end;
    gam=gab+a;lam=(lab*sind(b1))/sind(alfa);
    xm=xa+(lam*sind(gam));
    ym=ya+(lam*cosd(gam));
    m=[xm ym]
end