原创:
#include "math.h"
double pi = 3.1415926535;
void CVectorView::OnDraw(CDC* pDC)
{
CVectorDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
double percentY,percentX1,percentX2;
percentY=(1-sin(0.1*pi))/(1+sin(0.3*pi));
percentX1=0.5-1 / (4 * cos(0.2 * pi));
percentX2=0.5+1 / (4 * cos(0.2 * pi));
CPoint point[5];
CPoint m_ptBegin,m_ptEnd;
m_ptBegin=CPoint(100,100);
m_ptEnd=CPoint(400,400);
point[0].x=(m_ptEnd.x - m_ptBegin.x)/2.0 + m_ptBegin.x;
point[0].y=m_ptBegin.y;
point[1].x=m_ptBegin.x;
point[1].y=(m_ptEnd.y - m_ptBegin.y) * percentY + m_ptBegin.y;
point[4].x=m_ptEnd.x;
point[4].y=(m_ptEnd.y - m_ptBegin.y) * percentY + m_ptBegin.y;
point[2].x=(m_ptEnd.x - m_ptBegin.x) * percentX1 + m_ptBegin.x;
point[2].y=m_ptEnd.y;
point[3].x=(m_ptEnd.x - m_ptBegin.x) * percentX2 + m_ptBegin.x;
point[3].y=m_ptEnd.y;
/*
for(int i=0;i<5;i++)
{
pDC->MoveTo(point[i]);
pDC->LineTo(point[(i+2)%5]);
}
*/
pDC->MoveTo(point[0]);
for(int i=0;i<5;i++)
{
pDC->LineTo(point[i]);
}
pDC->LineTo(point[0]);
}