博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验一 绘制金刚石图案
阅读量:5275 次
发布时间:2019-06-14

本文共 1394 字,大约阅读时间需要 4 分钟。

基于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画的图真的是好看

 

转载于:https://www.cnblogs.com/amtop/p/10960704.html

你可能感兴趣的文章
文件序列化
查看>>
C#应用视频教程3.1 USB工业相机测试
查看>>
实验一 绘制金刚石图案
查看>>
白话SpringCloud | 第五章:服务容错保护(Hystrix)
查看>>
fabricjs 高级篇(自定义类型)
查看>>
jQuery之end()和pushStack()
查看>>
springboot入门_shiro
查看>>
Bootstrap--响应式导航条布局
查看>>
【好程序员笔记分享】——下拉刷新和上拉加载更多
查看>>
多线程,多进程,协程
查看>>
Hacker News与Reddit的算法比较
查看>>
Learning Python 009 dict(字典)和 set
查看>>
JavaScript中随着鼠标拖拽而移动的块
查看>>
HDU 1021 一道水题
查看>>
进击的 JavaScript(六) 之 this
查看>>
The operation couldn’t be completed. (LaunchServicesError error 0.)
查看>>
php每天一题:strlen()与mb_strlen()的作用分别是什么
查看>>
编程中定义的方法报异常问题
查看>>
使用STM32F103ZET霸道主板实现SD卡的读写(非文件系统)
查看>>
工作中收集JSCRIPT代码之(下拉框篇)
查看>>