永发信息网

如何用c语言做一个用*组成的实心五角星?

答案:2  悬赏:80  手机版
解决时间 2021-03-08 16:21
如何用c语言做一个用*组成的实心五角星?
最佳答案
1. 在C**** View.cpp中加入:#include"math.h"
2. 在C******View类中添加:
int g; //表示角度
CPoint v[10], prev_v[10]; //五角星的十个点
CDC *pDC; //设备上下文指针
CBrush br,*p_br; //画刷对象和画刷指针
CPen pen,*p_pen; //画笔对象和画比指针

3. 在构造函数CMyView()添加:
g=0; 角度从0开始
float rad;
int i,t; 将五角星的十个点存入V数组中
for(i=0;i<10;i++)
{rad=float((i*36+18)*3.14/180);
t=i&1?50:25;
v[i].x=int(t*cos(rad));
v[i].y=int(t*sin(rad));
} //红,绿,蓝
br.CreateSolidBrush(RGB(255,255,0));//创建一个实心画刷
pen.CreatePen(PS_SOLID,2,RGB(0,120,255));设置画笔
// 初始化画刷和画笔:PS_SOLID:实线样式,2:线宽
4. 在析构造函数~CMyView()中添加:
br.DeleteObject();
pen.DeleteObject();释放画笔和画刷

5. 在OnDraw()函数中加入:
KillTimer(1);//禁止定时器消息
CRect rc; //窗口对象
GetClientRect(&rc); //得到窗口的大小
int x,y,j,x1,y1;
float rad1; // 坐标转换
x=rc.right/2;
y=rc.bottom/2; //得到窗口的中心坐标
for(j=0;j<359;j+=2)
{rad1=float(j*3.14/180);
x1=int(100*cos(rad1))+x; //画圆
y1=int(100*sin(rad1))+y;
pDC->SetPixel(x1,y1,RGB(0,0,0)); //画园上的点

2010-6-4 20:00 回复

圈中打转
0位粉丝
2楼

}
pDC->SetROP2(R2_NOTXORPEN); //设置绘图模式
p_br=pDC->SelectObject(&br); //选择画笔等GDI绘图对象
memcpy(prev_v,v,10*sizeof(CPoint));//将五角星的十个点送prev_v数组
pDC->Polygon(prev_v,10); //画五角星
pDC->SelectObject(p_br); //设置绘图对象
SetTimer(1,50,NULL); //启动定时器
6. 在定时器响应函数OnTimer(UINT nIDEvent) 中添加:
7. g+=5; //角度加5
CRect rc;
GetClientRect(&rc);
int x,y,j;
float rad1; //坐标转换
rad1=float(g*3.14/180);
x=(rc.right/2);
y=rc.bottom/2;
CPoint a[10]; //定义一个临时的数组存放角度变化后的五角星的十个点
for(j=0;j<10;j++)
{a[j].x=v[j].x+x+int(100*cos(rad1));
a[j].y=v[j].y+y+int(100*sin(rad1));
}
CClientDC *pDC=new CClientDC(this);
pDC->SetROP2(R2_NOTXORPEN);
p_br=pDC->SelectObject(&br);

pDC->Polygon(prev_v,10);
memcpy(prev_v,a,10*sizeof(CPoint));
pDC->Polygon(prev_v,10);

pDC->SelectObject(p_br);
delete pDC;
if (g>359) KillTimer(1); //角度
CView::OnTimer(nIDEvent);
全部回答
#include "stdio.h" #include "conio.h" main() { printf("hello star!\n"); printf(" *\n"); printf(" * *\n"); printf(" * * \n"); printf("* * * * * *\n"); printf("\n"); printf(" * * \n"); printf(" * * * \n"); printf(" * * * * \n"); printf(" * * * * \n"); printf("* * \n"); getch(); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
下表是1620年和1850年江南八府一州城乡人口统
皇家永利晚上几点下班
毛线的网络用语
某班举行辩论会。四位同学的辩论题目中哪一个
求个PSP游戏(高分)
牛魔王拉萨道店怎么去啊,有知道地址的么
【六年级数学教学反思】六年级数学单元教学反
急!!!!!企业本年度计提未发放的工资,在
歌词高潮开头是火柴什么的
梦到女朋友和别人好上了,然后和我分手了
吸水喇叭口距离吸水井底部至少要多少标高
C和C++哪点不一样呢?是算法吗?还是思想?还
南昌中山路店天虹商场有无负责人名叫 姚娜?有
drop that exo 歌词没有中文版的么
商业银行将部分企业贷款的贷前调查工作外包给
推荐资讯
黑龙江省双峰农场第二管理区这个地址在什么地
海内存知己天涯若比邻作者以 (表达方式)
洗澡蟹的差别对比
杭州萧山区南阳镇中通快递收件号码是多少?
潘达利亚怎么种地?
西部证券股份有限责任公司汉中西乡证券营业部
可以在使用360安全路由的情况下,用ss吗?
蛋白质的β—折叠结构有何特点
怎样正确给狗狗进行体内体外驱虫
【家成】家的成语有哪些
下图表示植物生理作用与环境因素之间的关系,
心殇无处话凄凉这是什么意思意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?