void CDiamondView::Polaris()
{
CDC *pDC = GetDC();
CPen newPen,*oldPen;
double a[8]={153,41,16,41,153,265,302,265}; //red
double b[8]={130,227,338,438,546,438,338,227}; //green
double x[8]={117,66,66,117,190,240,240,190}; //blue
double y[8]={251,301,364,425,425,364,301,251}; //black
//display
for(int i=0;i<4;i++)
{
switch(i)
{
case 0:{newPen.CreatePen(PS_SOLID,2,RGB(255,0,0));
oldPen = pDC->SelectObject(&newPen);
POINT vertex1[12]={{153,338},{x[0],y[0]},{a[1],b[1]},{x[1],y[1]},{153,338},{x[5],y[5]},{a[5],b[5]},{x[4],y[4]},{153,338},{a[1],b[1]},{153,338},{a[5],b[5]}}; pDC->Polyline(vertex1, 12);break;}
case 1:{newPen.CreatePen(PS_SOLID,2,RGB(0,255,0));
oldPen = pDC->SelectObject(&newPen);
POINT vertex2[12]={{153,338},{x[2],y[2]},{a[3],b[3]},{x[3],y[3]},{153,338},{x[7],y[7]},{a[7],b[7]},{x[6],y[6]},{153,338},{a[3],b[3]},{153,338},{a[7],b[7]}}; pDC->Polyline(vertex2, 12);break;}
case 2:{newPen.CreatePen(PS_SOLID,2,RGB(0,0,255));
oldPen = pDC->SelectObject(&newPen);
POINT vertex3[12]={{153,338},{x[7],y[7]},{a[0],b[0]},{x[0],y[0]},{153,338},{x[4],y[4]},{a[4],b[4]},{x[3],y[3]},{153,338},{a[0],b[0]},{153,338},{a[4],b[4]}}; pDC->Polyline(vertex3, 12);break;}
case 3:{newPen.CreatePen(PS_SOLID,2,RGB(100,100,100));
oldPen = pDC->SelectObject(&newPen);
POINT vertex4[12]={{153,338},{x[1],y[1]},{a[2],b[2]},{x[2],y[2]},{153,338},{x[6],y[6]},{a[6],b[6]},{x[5],y[5]},{153,338},{a[2],b[2]},{153,338},{a[6],b[6]}}; pDC->Polyline(vertex4, 12);break;}
default:break;
}
pDC->SelectObject(oldPen);
newPen.DeleteObject();
Sleep(500);
}
//duicheng
int k=400;
for(int i=0;i<4;i++)
{
switch(i)
{
case 0:{newPen.CreatePen(PS_SOLID,2,RGB(255,0,0));
oldPen = pDC->SelectObject(&newPen);
POINT vertex1[12]={{(153+k),338},{(x[0]+k),y[0]},{(a[1]+k),b[1]},{(x[1]+k),y[1]},{(153+k),338},{(x[5]+k),y[5]},{(a[5]+k),b[5]},{(x[4]+k),y[4]},{(153+k),338},{(a[1]+k),b[1]},{(153+k),338},{(a[5]+k),b[5]}}; pDC->Polyline(vertex1, 12);break;}
case 1:{newPen.CreatePen(PS_SOLID,2,RGB(0,255,0));
oldPen = pDC->SelectObject(&newPen);
POINT vertex2[12]={{(153+k),338},{(x[2]+k),y[2]},{(a[3]+k),b[3]},{(x[3]+k),y[3]},{(153+k),338},{(x[7]+k),y[7]},{(a[7]+k),b[7]},{(x[6]+k),y[6]},{(153+k),338},{(a[3]+k),b[3]},{(153+k),338},{(a[7]+k),b[7]}}; pDC->Polyline(vertex2, 12);break;}
case 2:{newPen.CreatePen(PS_SOLID,2,RGB(0,0,255));
oldPen = pDC->SelectObject(&newPen);
POINT vertex3[12]={{(153+k),338},{(x[7]+k),y[7]},{(a[0]+k),b[0]},{(x[0]+k),y[0]},{(153+k),338},{(x[4]+k),y[4]},{(a[4]+k),b[4]},{(x[3]+k),y[3]},{(153+k),338},{(a[0]+k),b[0]},{(153+k),338},{(a[4]+k),b[4]}}; pDC->Polyline(vertex3, 12);break;}
case 3:{newPen.CreatePen(PS_SOLID,2,RGB(100,100,100));
oldPen = pDC->SelectObject(&newPen);
POINT vertex4[12]={{(153+k),338},{(x[1]+k),y[1]},{(a[2]+k),b[2]},{(x[2]+k),y[2]},{(153+k),338},{(x[6]+k),y[6]},{(a[6]+k),b[6]},{(x[5]+k),y[5]},{(153+k),338},{(a[2]+k),b[2]},{(153+k),338},{(a[6]+k),b[6]}}; pDC->Polyline(vertex4, 12);break;}
default:break;
}
pDC->SelectObject(oldPen);
newPen.DeleteObject();
}
//suo
Sleep(1000);
InvalidateRect(NULL);
UpdateWindow();
float l;
for(int j=0;j<4;j++)
{
l=2.0;
switch(j)
{
case 0:{newPen.CreatePen(PS_SOLID,2,RGB(255,0,0));
oldPen = pDC->SelectObject(&newPen);
POINT vertex1[12]={{153/l,338/l},{x[0]/l,y[0]/l},{a[1]/l,b[1]/l},{x[1]/l,y[1]/l},{153/l,338/l},{x[5]/l,y[5]/l},{a[5]/l,b[5]/l},{x[4]/l,y[4]/l},{153/l,338/l},{a[1]/l,b[1]/l},{153/l,338/l},{a[5]/l,b[5]/l}}; pDC->Polyline(vertex1, 12);break;}
case 1:{newPen.CreatePen(PS_SOLID,2,RGB(0,255,0));
oldPen = pDC->SelectObject(&newPen);
POINT vertex2[12]={{153/l,338/l},{x[2]/l,y[2]/l},{a[3]/l,b[3]/l},{x[3]/l,y[3]/l},{153/l,338/l},{x[7]/l,y[7]/l},{a[7]/l,b[7]/l},{x[6]/l,y[6]/l},{153/l,338/l},{a[3]/l,b[3]/l},{153/l,338/l},{a[7]/l,b[7]/l}}; pDC->Polyline(vertex2, 12);break;}
case 2:{newPen.CreatePen(PS_SOLID,2,RGB(0,0,255));
oldPen = pDC->SelectObject(&newPen);
POINT vertex3[12]={{153/l,338/l},{x[7]/l,y[7]/l},{a[0]/l,b[0]/l},{x[0]/l,y[0]/l},{153/l,338/l},{x[4]/l,y[4]/l},{a[4]/l,b[4]/l},{x[3]/l,y[3]/l},{153/2,338/l},{a[0]/l,b[0]/l},{153/l,338/l},{a[4]/l,b[4]/l}}; pDC->Polyline(vertex3, 12);break;}
case 3:{newPen.CreatePen(PS_SOLID,2,RGB(100,100,100));
oldPen = pDC->SelectObject(&newPen);
POINT vertex4[12]={{153/l,338/l},{x[1]/l,y[1]/l},{a[2]/l,b[2]/l},{x[2]/l,y[2]/l},{153/l,338/l},{x[6]/l,y[6]/l},{a[6]/l,b[6]/l},{x[5]/l,y[5]/l},{153/2,338/l},{a[2]/l,b[2]/l},{153/l,338/l},{a[6]/l,b[6]/l}}; pDC->Polyline(vertex4, 12);break;}
default:break;
}
pDC->SelectObject(oldPen);
newPen.DeleteObject();
}
Sleep(1500);
InvalidateRect(NULL);
UpdateWindow();
//display again
for(int m=0;m<4;m++)
{
switch(m)
{
case 0:{newPen.CreatePen(PS_SOLID,2,RGB(255,0,0));
oldPen = pDC->SelectObject(&newPen);
POINT vertex1[12]={{153,338},{x[0],y[0]},{a[1],b[1]},{x[1],y[1]},{153,338},{x[5],y[5]},{a[5],b[5]},{x[4],y[4]},{153,338},{a[1],b[1]},{153,338},{a[5],b[5]}}; pDC->Polyline(vertex1, 12);break;}
case 1:{newPen.CreatePen(PS_SOLID,2,RGB(0,255,0));
oldPen = pDC->SelectObject(&newPen);
POINT vertex2[12]={{153,338},{x[2],y[2]},{a[3],b[3]},{x[3],y[3]},{153,338},{x[7],y[7]},{a[7],b[7]},{x[6],y[6]},{153,338},{a[3],b[3]},{153,338},{a[7],b[7]}}; pDC->Polyline(vertex2, 12);break;}
case 2:{newPen.CreatePen(PS_SOLID,2,RGB(0,0,255));
oldPen = pDC->SelectObject(&newPen);
POINT vertex3[12]={{153,338},{x[7],y[7]},{a[0],b[0]},{x[0],y[0]},{153,338},{x[4],y[4]},{a[4],b[4]},{x[3],y[3]},{153,338},{a[0],b[0]},{153,338},{a[4],b[4]}}; pDC->Polyline(vertex3, 12);break;}
case 3:{newPen.CreatePen(PS_SOLID,2,RGB(100,100,100));
oldPen = pDC->SelectObject(&newPen);
POINT vertex4[12]={{153,338},{x[1],y[1]},{a[2],b[2]},{x[2],y[2]},{153,338},{x[6],y[6]},{a[6],b[6]},{x[5],y[5]},{153,338},{a[2],b[2]},{153,338},{a[6],b[6]}}; pDC->Polyline(vertex4, 12);break;}
default:break;
}
pDC->SelectObject(oldPen);
newPen.DeleteObject();
}
InvalidateRect(NULL);
UpdateWindow();
Sleep(500);
//rotate
double angle=3.1415926/4;
POINT V[17]={{a[0],b[0]},{(x[0],y[0])},{a[1],b[1]},{(x[1],y[1])},{a[2],b[2]},{(x[2],y[2])},{a[3],b[3]},{(x[3],y[3])},{a[4],b[4]},{(x[4],y[4])},{a[5],b[5]},{(x[5],y[5])},{a[6],b[6]},{(x[6],y[6])},{a[7],b[7]},{(x[7],y[7])},{153,338}};
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
float X,Y; //暂存坐标值
//for(int s=0;s<8;s++)
//{
for(int i=0;i<17;i++)
{
X=V[i].x;
Y=V[i].y;
V[i].x=X*cos(angle)-Y*sin(angle);
V[i].y=X*sin(angle)+Y*cos(angle);
}
for(int n=0;n<4;n++)
{
switch(n)
{
case 0:{newPen.CreatePen(PS_SOLID,2,RGB(255,0,0));
oldPen = pDC->SelectObject(&newPen);
POINT vertex1[12]={{V[16].x,V[16].y},{V[1].x,V[1].y},{V[2].x,V[2].y},{V[3].x,V[3].y},{V[16].x,V[16].y},{V[11].x,V[11].y},{V[10].x,V[10].y},{V[9].x,V[9].y},{V[16].x,V[16].y},{V[2].x,V[2].y},{V[16].x,V[16].y},{V[10].x,V[10].y}}; pDC->Polyline(vertex1, 12);break;}
case 1:{newPen.CreatePen(PS_SOLID,2,RGB(0,255,0));
oldPen = pDC->SelectObject(&newPen);
POINT vertex2[12]={{V[16].x,V[16].y},{V[5].x,V[5].y},{V[6].x,V[6].y},{V[7].x,V[7].y},{V[16].x,V[16].y},{V[15].x,V[15].y},{V[14].x,V[14].y},{V[13].x,V[13].y},{V[16].x,V[16].y},{V[6].x,V[6].y},{V[16].x,V[16].y},{V[14].x,V[14].y}}; pDC->Polyline(vertex2, 12);break;}
case 2:{newPen.CreatePen(PS_SOLID,2,RGB(0,0,255));
oldPen = p
beijixing.rar_beijixing
版权申诉
7 浏览量
2022-09-14
16:30:51
上传
评论
收藏 1KB RAR 举报
![avatar](https://profile-avatar.csdnimg.cn/6a7aa99d23544fe38965063dcf203f49_weixin_42664597.jpg!1)
小贝德罗
- 粉丝: 71
- 资源: 1万+