📄 graficoview.cpp
字号:
// GraficoView.cpp : implementation file
//
#include "stdafx.h"
#include "Programa.h"
#include "ProgramaDoc.h"
#include "GraficoView.h"
#include "Posicion.h"
#include "CargarTocho.h"
#include "CargarTochoFresa.h"
#include <math.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/*#ifdef _DEBUG
CProgramaDoc* CGraficoView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CProgramaDoc)));
return (CProgramaDoc*)m_pDocument;
}
#endif
*/
/////////////////////////////////////////////////////////////////////////////
// CGraficoView
IMPLEMENT_DYNCREATE(CGraficoView, CScrollView)
CGraficoView::CGraficoView()
{
inicio=0;
}
CGraficoView::~CGraficoView()
{
}
BEGIN_MESSAGE_MAP(CGraficoView, CScrollView)
//{{AFX_MSG_MAP(CGraficoView)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CGraficoView drawing
void CGraficoView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
CSize sizeTotal;
// TODO: calculate the total size of this view
sizeTotal.cx = sizeTotal.cy = 1000;
SetScrollSizes(MM_LOMETRIC, sizeTotal);
}
void CGraficoView::OnDraw(CDC* pDC)
{
CProgramaDoc* pDoc = GetDocument();
CRect rectClient;
GetClientRect(rectClient);
/* switch (pDoc->unidades)
{
case 0:
pDC->SetMapMode(MM_LOMETRIC);
break;
case 1:
pDC->SetMapMode(MM_LOENGLISH);
break;
}*/
pDC->SetWindowExt(1000, 1000);
pDC->SetViewportExt(rectClient.right, -rectClient.bottom);
if (pDoc->torno == 1)
{
pDC->SetViewportOrg(rectClient.right / 2, rectClient.bottom / 1.5);
// 2.1 TITULO
pDC->TextOut(-50, 1000, "T O R N O");
// 2.2 COORDENADAS
lapiz=new CPen(PS_SOLID,0,RGB(35,65,170));
pincel=new CBrush(RGB(220,230,250));
pDC->SelectObject(lapiz);
pDC->SelectObject(pincel);
pDC->RoundRect(400, 950, 850, 650, 50, 50);
pDC->TextOut(500, 900, " Coordenadas ");
pDC->TextOut(500, 800, " X = ");
pDC->TextOut(500, 750, " Y = ");
delete (lapiz);
delete (pincel);
}
if (pDoc->torno ==1 && pDoc->cargarTor==0 && pDoc->cuchilla==0)
{
pDC->SetViewportOrg(rectClient.right / 2, rectClient.bottom / 1.5);
// 3.1 MANDRIL
lapizAzul=new CPen(PS_SOLID,0,RGB(78,78,156));
lapizNar=new CPen(PS_SOLID,0,RGB(176,92,0));
aobsc=new CBrush(RGB(157,157,205));
nclaro=new CBrush(RGB(255,180,100));
nint=new CBrush(RGB(255,170,80));
nobsc=new CBrush(RGB(255,160,70));
pDC->SelectObject(lapizAzul);
pDC->SelectObject(aobsc);
long a, b;
a =-776;
b =210-10*4/2+10*4;//valores que se den cambiar segun las verdaderas coordenadas
POINT MandrillUP[]= {{a+0,b+0},{a+176,b+0},{a+176,b+21},{a+162,b+35},{a+176,b+49},{a+176,b+76},{a+130,b+76},{a+116,b+62},{a+102,b+76},{a+116,b+90},{a+116,b+137},{a+108,b+207},
{a+68,b+207},{a+54,b+193},{a+40,b+207},{a+54,b+221},{a+54,b+266},{a+46,b+331},{a+0,b+331}};
pDC->Polygon(MandrillUP,19);
a =-776;
b =210-10*4/2-331;
POINT MandrillDWN[]={{a,b},{a+46,b},{a+54,b+70},{a+54,b+115},{a+40,b+129},{a+54,b+143},{a+68,b+129},{a+108,b+129},{a+108,b+129},{a+108,b+194},{a+116,b+194},
{a+116,b+241},{a+102,b+255},{a+116,b+269},{a+130,b+255},{a+176,b+255},{a+176,b+282},{a+162,b+296},{a+176,b+310},{a+176,b+331},{a,b+331}};
pDC->Polygon(MandrillDWN,21);
pDC->SelectObject(lapizNar);
pDC->SelectObject(nclaro);
pDC->Rectangle (-1000, 610, -760, -190);
// 3.2 CONTRAPUNTO
a = 360;
b = 210;
pDC->SelectObject(lapizAzul);
pDC->SelectObject(aobsc);
POINT ContraPto[] = {{a,b},{a+200,b+90},{a+230,b+90},{a+230,b-90},{a+200,b-90}};
pDC->Polygon(ContraPto,5);
a = 590;
b = 410;
pDC->SelectObject(lapizNar);
pDC->SelectObject(nobsc);
POINT ContraPto2[] = {{a,b-20},{a+20,b},{a+20,b-400},{a,b-380}};
pDC->Polygon(ContraPto2,4);
pDC->SelectObject(nclaro);
POINT ContraPto3[] = {{a+20,b},{a+330,b},{a+330,b-400},{a+20,b-400}};
pDC->Polygon(ContraPto3,4);
pDC->SelectObject(nobsc);
POINT ContraPto4[] = {{a+330,b},{a+350,b-20},{a+350,b-380},{a+330,b-400}};
pDC->Polygon(ContraPto4,4);
pDC->SelectObject(lapizAzul);
pDC->SelectObject(aobsc);
POINT ContraPto5[] = {{a+350,b-150},{a+400,b-150},{a+400,b-250},{a+350,b-250}};
pDC->Polygon(ContraPto5,4);
// 3.3 PORTAHERRAMIENTA
pDC->SelectObject(lapizNar);
pDC->SelectObject(nclaro);
POINT Porta[]={{-40,-150},{240,-150},{250,-160},{250,-660},{240,-670},{-40,-670},{-50,-660},{-50,-160}};
pDC->Polygon(Porta,8);
pDC->SelectObject(nint);
pDC->Ellipse(-10,-210,70,-290);
pDC->Ellipse(-10,-550,70,-630);
pDC->SelectObject(nobsc);
pDC->Ellipse(5,-225,55,-275);
pDC->Ellipse(5,-565,55,-615);
pDC->Ellipse(110,-210,210,-310);
pDC->Ellipse(110,-540,210,-640);
delete (lapizAzul);
delete (lapizNar);
delete (aobsc);
delete (nclaro);
delete (nint);
delete (nobsc);
}
/// DIBUJO DEL TOCHO, MANDRIL Y CONTRAPUNTO
if (pDoc->torno==1 && pDoc->cargarTor==1)
{
pDC->SetViewportOrg(rectClient.right / 2, rectClient.bottom / 1.5);
lapizAzul=new CPen(PS_SOLID,0,RGB(78,78,156));
lapizNar=new CPen(PS_SOLID,0,RGB(176,92,0));
aobsc=new CBrush(RGB(157,157,205));
nclaro=new CBrush(RGB(255,180,100));
nint=new CBrush(RGB(255,170,80));
nobsc=new CBrush(RGB(255,160,70));
filo=new CPen(PS_SOLID,0,RGB(10,89,42));
herram=new CBrush(RGB(70,235,135));
// 4.1 ESCOGE EL MATERIAL
if (pDoc->material == 0)
{
pincel=new CBrush(RGB(145, 145, 145));
lapiz=new CPen(PS_SOLID,0,RGB(145, 145, 145));
}
if ( pDoc->material == 1)
{
pincel=new CBrush(RGB(185, 185, 185));
lapiz=new CPen(PS_SOLID,0,RGB(185, 185, 185));
}
if (pDoc->material == 2)
{
pincel=new CBrush(RGB(206,177,80));
lapiz=new CPen(PS_SOLID,0,RGB(206,177,80));
}
if (pDoc->material == 3)
{
pincel=new CBrush(RGB(205,105,5));
lapiz=new CPen(PS_SOLID,0,RGB(205,105,5));
}
if (pDoc->material == 4)
{
pincel=new CBrush(RGB(177, 203, 222));
lapiz=new CPen(PS_SOLID,0,RGB(177, 203, 222));
}
// 4.2 TOCHO F(MATERIAL)
pDC->SelectObject(pincel);
pDC->SelectObject(lapiz);
pDC->Rectangle(-600, 210-10*pDoc->diametro/2, -600+10*pDoc->largo, 210-10*pDoc->diametro/2+10*pDoc->diametro);//Medir las coordenadas reales con el CADTECH
pDC->Rectangle(-776,210-10*pDoc->diametro/2+10*pDoc->diametro,-600, 210-10*pDoc->diametro/2);
delete (pincel);
delete (lapiz);
// 4.3 MANDRIL F(TOCHO)
pDC->SelectObject(lapizAzul);
pDC->SelectObject(aobsc);
long a, b;
a =-776;
b =210-10*pDoc->diametro/2+10*pDoc->diametro;//valores que se den cambiar segun las verdaderas coordenadas
POINT MandrillUP[]= {{a,b},{a+176,b},{a+176,b+21},{a+162,b+35},{a+176,b+49},{a+176,b+76},{a+130,b+76},{a+116,b+62},{a+102,b+76},{a+116,b+90},{a+116,b+137},{a+108,b+207},
{a+68,b+207},{a+54,b+193},{a+40,b+207},{a+54,b+221},{a+54,b+266},{a+46,b+331},{a+0,b+331}};
pDC->Polygon(MandrillUP,19);
b =210-10*pDoc->diametro/2-331;
POINT MandrillDWN[]={{a,b},{a+46,b},{a+54,b+70},{a+54,b+115},{a+40,b+129},{a+54,b+143},{a+68,b+129},{a+108,b+129},{a+108,b+129},{a+108,b+194},{a+116,b+194},
{a+116,b+241},{a+102,b+255},{a+116,b+269},{a+130,b+255},{a+176,b+255},{a+176,b+282},{a+162,b+296},{a+176,b+310},{a+176,b+331},{a,b+331}};
pDC->Polygon(MandrillDWN,21);
pDC->SelectObject(lapizNar);
pDC->SelectObject(nclaro);
pDC->Rectangle (-1000, 610, -760, -190);
// 4.4 CONTRAPUNTO F(TOCHO)
if (pDoc->largo > 70)
{
a = -600+10*pDoc->largo;
b = 210;
pDC->SelectObject(lapizAzul);
pDC->SelectObject(aobsc);
POINT ContraPto[] = {{a,b},{a+200,b+90},{a+230,b+90},{a+230,b-90},{a+200,b-90}};
pDC->Polygon(ContraPto,5);
a = -370+10*pDoc->largo;
b = 410;
pDC->SelectObject(lapizNar);
pDC->SelectObject(nobsc);
POINT ContraPto2[] = {{a,b-20},{a+20,b},{a+20,b-400},{a,b-380}};
pDC->Polygon(ContraPto2,4);
pDC->SelectObject(nclaro);
POINT ContraPto3[] = {{a+20,b},{a+330,b},{a+330,b-400},{a+20,b-400}};
pDC->Polygon(ContraPto3,4);
pDC->SelectObject(nobsc);
POINT ContraPto4[] = {{a+330,b},{a+350,b-20},{a+350,b-380},{a+330,b-400}};
pDC->Polygon(ContraPto4,4);
pDC->SelectObject(lapizAzul);
pDC->SelectObject(aobsc);
POINT ContraPto5[] = {{a+350,b-150},{a+400,b-150},{a+400,b-250},{a+350,b-250}};
pDC->Polygon(ContraPto5,4);
}
if (pDoc->largo<=70)
{
// 3.2 CONTRAPUNTO
a = 360;
b = 210;
pDC->SelectObject(lapizAzul);
pDC->SelectObject(aobsc);
POINT ContraPto[] = {{a,b},{a+200,b+90},{a+230,b+90},{a+230,b-90},{a+200,b-90}};
pDC->Polygon(ContraPto,5);
a = 590;
b = 410;
pDC->SelectObject(lapizNar);
pDC->SelectObject(nobsc);
POINT ContraPto2[] = {{a,b-20},{a+20,b},{a+20,b-400},{a,b-380}};
pDC->Polygon(ContraPto2,4);
pDC->SelectObject(nclaro);
POINT ContraPto3[] = {{a+20,b},{a+330,b},{a+330,b-400},{a+20,b-400}};
pDC->Polygon(ContraPto3,4);
pDC->SelectObject(nobsc);
POINT ContraPto4[] = {{a+330,b},{a+350,b-20},{a+350,b-380},{a+330,b-400}};
pDC->Polygon(ContraPto4,4);
pDC->SelectObject(lapizAzul);
pDC->SelectObject(aobsc);
POINT ContraPto5[] = {{a+350,b-150},{a+400,b-150},{a+400,b-250},{a+350,b-250}};
pDC->Polygon(ContraPto5,4);
}
if (pDoc->cuchilla==0)
{
// 3.3 PORTAHERRAMIENTA
pDC->SelectObject(lapizNar);
pDC->SelectObject(nclaro);
POINT Porta[]={{-40,-150},{240,-150},{250,-160},{250,-660},{240,-670},{-40,-670},{-50,-660},{-50,-160}};
pDC->Polygon(Porta,8);
pDC->SelectObject(nint);
pDC->Ellipse(-10,-210,70,-290);
pDC->Ellipse(-10,-550,70,-630);
pDC->SelectObject(nobsc);
pDC->Ellipse(5,-225,55,-275);
pDC->Ellipse(5,-565,55,-615);
pDC->Ellipse(110,-210,210,-310);
pDC->Ellipse(110,-540,210,-640);
}
if (pDoc->cuchilla==1)
{
// 5.1 CUCHILLA
long alfa,beta,y,a,H,pi;
pi=3.1415925654;
alfa=pDoc->angcNo1;
beta=pDoc->ang2cNo1;
y=pDoc->acNo1;
a=pDoc->ANo1;
H=pDoc->altcNo1;
long or1,or2, or2y;
or1=pDoc->XPos+0;
or2=pDoc->YPos+0;
or2y = 420-pDoc->YPos;
pDC->SelectObject(filo);
pDC->SelectObject(herram);
POINT Vert[]={{or1,or2},{or1-a,or2-(tan(alfa*pi/180)*a)},{or1-a,or2-H},{or1+y-a,or2-H},{or1+y-a,or2-(tan(beta*pi/180)*(y-a))}};
pDC->Polygon (Vert,5);
// 5.2 PORTAHERRAMIENTA F(CUCHILLA)
pDC->SelectObject(lapizNar);
pDC->SelectObject(nclaro);
POINT Porta[]={{or1-a-10,or2-H},{or1-a+270,or2-H},{or1-a+280,or2-H-10},{or1-a+280,or2-H-510},{or1-a+270,or2-H-520},{or1-a-10,or2-H-520},{or1-a-20,or2-H-510},{or1-a-20,or2-H-10}};
pDC->Polygon(Porta,8);
pDC->SelectObject(nint);
pDC->Ellipse(or1-a+20,or2-H-60,or1-a+100,or2-H-140);
pDC->Ellipse(or1-a+20,or2-H-380,or1-a+100,or2-H-460);
pDC->SelectObject(nobsc);
pDC->Ellipse(or1-a+35,or2-H-75,or1-a+85,or2-H-125);
pDC->Ellipse(or1-a+35,or2-H-395,or1-a+85,or2-H-445);
pDC->Ellipse(or1-a+140,or2-H-60,or1-a+240,or2-H-160);
pDC->Ellipse(or1-a+140,or2-H-360,or1-a+240,or2-H-460);
}
delete (lapizAzul);
delete (lapizNar);
delete (filo);
delete (aobsc);
delete (nclaro);
delete (nint);
delete (nobsc);
delete (herram);
}
/// DIBUJO DE LA CUCHILLA
if (pDoc->torno==1 && pDoc->cuchilla==1)
{
pDC->SetViewportOrg(rectClient.right / 2, rectClient.bottom / 1.5);
lapizAzul=new CPen(PS_SOLID,0,RGB(78,78,156));
lapizNar=new CPen(PS_SOLID,0,RGB(176,92,0));
aobsc=new CBrush(RGB(157,157,205));
nclaro=new CBrush(RGB(255,180,100));
nint=new CBrush(RGB(255,170,80));
nobsc=new CBrush(RGB(255,160,70));
filo=new CPen(PS_SOLID,0,RGB(10,89,42));
herram=new CBrush(RGB(70,235,135));
// 5.1 CUCHILLA
long alfa,beta,y,a,H,pi;
pi=3.1415925654;
alfa=pDoc->angcNo1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -