基于VS2019的MFC进行完成的代码。
创建之后,只需要在OnDraw()函数里做如下修改即可使用。
老师要求实现窗体功能,然鹅我并不会,所以就没弄。
1 void CTestView::OnDraw(CDC* pDC) 2 { 3 CTestDoc* pDoc = GetDocument(); 4 ASSERT_VALID(pDoc); 5 // TODO: add draw code for native data here 6 7 CPoint p[32]; 8 double r = 400; 9 int i,j;10 11 pDC->Ellipse(0,0,int(r*2),int(r*2));12 13 for(i=0;i<30;i++)14 {15 p[i].x=r*cos(i*3.14/15)+r;//计算正五边形顶点16 p[i].y=r*sin(i*3.14/15)+r;17 }18 19 for(i=0; i<30; i++)20 for(j=0; j<30; j++)21 {22 if(i!=j)23 {24 pDC->MoveTo(p[i].x, p[i].y);25 pDC->LineTo(p[j].x, p[j].y);26 }27 }28 29 }
当然,我自己也用Python实现了,一并放出来。(Python实现窗体功能好麻烦,啊啊啊啊啊)
1 # 金刚石程序 2 3 import numpy as np 4 import matplotlib.pyplot as plt 5 from pylab import * 6 7 R = 300 # 半径 8 number_point = 30 #等分点数量 9 10 figure(figsize=(8,8), dpi=80)11 temp = np.linspace(0, 2*np.pi, 1000)12 X = np.sin(temp)*R13 Y = np.cos(temp)*R14 plot(X,Y,linewidth=1.0,linestyle=':')15 16 x=[]17 y=[]18 for i in range(number_point):19 x.append(R*np.sin(i*2*pi/number_point))20 y.append(R*np.cos(i*2*pi/number_point))21 22 for i in range(number_point):23 for j in range(number_point):24 if(i!=j):25 plt.plot([x[i],x[j]],[y[i],y[j]])26 27 show()
Python画的图真的是好看