基於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)*R 13 Y = np.cos(temp)*R 14 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畫的圖真的是好看