Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
записка.лянг.100.docx
Скачиваний:
1
Добавлен:
27.04.2019
Размер:
423.82 Кб
Скачать

Void cZasyadkoView::Clear()

{

CClientDC dc(this);

SetMapMode(dc,MM_LOMETRIC);

SetViewportOrgEx(dc, ox, oy, NULL);

CPen newpen1;

newpen1.CreatePen(PS_SOLID,1,RGB(255,255,255));

dc.SelectObject(newpen1);

dc.MoveTo(bx, by);

dc.LineTo(ax, ay);

dc.MoveTo(cx, cy);

dc.LineTo(a1x, a1y);

dc.MoveTo(a1x, a1y);

dc.LineTo(ax, ay);

dc.MoveTo(ax-(a1x-ax), ay-(a1y-ay));

dc.LineTo(a1x, a1y);

dc.MoveTo(mx, my);

dc.LineTo(kx, ky);

dc.MoveTo(kx,ky);

dc.LineTo(kx,ky-ab);

CPen newpen6;

newpen6.CreatePen(PS_SOLID,1,RGB(255,255,255));

dc.SelectObject(newpen6);

dc.Ellipse(bx-10/kl*dab/100,by-10/kl*dab/100,bx+10/kl*dab/100,by+10/kl*dab/100);

dc.Ellipse(cx-10/kl*dab/100,cy-10/kl*dab/100,cx+10/kl*dab/100,cy+10/kl*dab/100);

dc.Ellipse(a1x-10/kl*dab/100,a1y-10/kl*dab/100,a1x+10/kl*dab/100,a1y+10/kl*dab/100);

dc.Ellipse(ax-10/kl*dab/100,ay-10/kl*dab/100,ax+10/kl*dab/100,ay+10/kl*dab/100);

dc.Ellipse(mx-10/kl*dab/100,my-10/kl*dab/100,mx+10/kl*dab/100,my+10/kl*dab/100);

dc.Ellipse(kx-10/kl*dab/100,ky-10/kl*dab/100,kx+10/kl*dab/100,ky+10/kl*dab/100);

dc.SetTextColor(RGB(255,255,255));

dc.SetBkMode(TRANSPARENT);

dc.TextOut(bx+10,by+4,"B");

dc.TextOut(cx+10,cy+4,"C");

dc.TextOut(kx+10,ky-10,"K");

dc.TextOut(ax-15,ay-10,"A");

dc.TextOut(a1x+10,a1y-10,"A'");

dc.TextOut(mx,my+10,"M'");

dc.Rectangle(cx*1.4,0,cx*1.5,25);

}

Void cZasyadkoView::OnVxod()

{

Vxod_dialog dlg;

if(dlg.DoModal()==IDOK)

{

if(dlg.m_com =="1:1"){kl=1;}

if(dlg.m_com =="1:4"){kl=4;}

if(dlg.m_com =="1:5"){kl=5;}

if(dlg.m_com =="1:10"){kl=10;}

if(dlg.m_com =="1:20"){kl=20;}

if(dlg.m_com =="1:25"){kl=25;}

ox=dlg.m_bx;

oy=dlg.m_by;

bx=0;

by=0;

cy=by;

cx=bx+dlg.m_bc*dlg.m_dab*10/kl;

ab=dlg.m_ab*dlg.m_dab*10/kl;

a1c=dlg.m_ab*dlg.m_dab*10/kl;

aa1=dlg.m_dab*10*dlg.m_aa/kl*1.06;

km=dlg.m_dab*10*dlg.m_mk/kl;

kx=(bx+cx)/2;

dab=dlg.m_dab;

flag=1;

flag2=1;

flag3=0;

flag4=1;

a=65;

gs=dlg.m_gs;

kp=dlg.m_kp;

if(kp!=0){ n=0; nn=0;}

CClientDC dc(this);

CPen Pen1; Pen1.CreatePen(PS_DOT, 10, RGB(255,255,255));

dc.SelectObject(Pen1);

dc.Rectangle(0,0,2000,2000);

int s=250;

s=s/gs;

nTimer=SetTimer(1,s,NULL);

ASSERT(nTimer != 0);

}

}

Void cZasyadkoView::OnTimer(uint nIdEvent)

{

if(kp!=0){

Raschet();

nn=nn+1;

if(kp>2 && nn>=(186/kp)) { Draw(); nn=0;}

if(n>=186) nTimer=KillTimer(1);

n=n+1;

}

if(kp==0){

Clear();

Raschet();

Draw();

CView::OnTimer(1);

}

}

Void cZasyadkoView::OnStop()

{

if(flag4==1)

{

nTimer=KillTimer(1);

flag4=0;

}

else

{

int s=250;

s=s/gs;

nTimer=SetTimer(1,s,NULL);

ASSERT(nTimer != 0);

flag4=1;

}

}

Void cZasyadkoView::OnTraektor()

{

if(flag3==0)flag3=1;

else

{

flag3=0;

CClientDC dc(this);

CPen Pen1; Pen1.CreatePen(PS_DOT, 10, RGB(255,255,255));

dc.SelectObject(Pen1);

dc.Rectangle(0,0,2000,2000);

}

}

Блок-схема работы программы

Рис. 1. Блок-схема работы программы