用C语言输出一个五角星图案
我用VC6实现了。关键代码如下:
1、获得五个外顶点的坐标:
int m_xw[5]; //5个X外顶点坐标
int m_yw[5]; //5个Y外顶点坐标
void CMyTestView::getCoord()
{
int c = 360 / 5; //角度
int r = 150;
for (int i = 0; i 5; i++)
{
m_xw[i] = (int) (cos(i * c * PI / 30 – PI / 2) * (r) + r);
m_yw[i] = (int) (sin(i * c * PI / 30 – PI / 2) * (r) + r);
}
}
2、画线段:
在构造函数中调用求顶点坐标的函数求顶点坐标:
this-getCoord();
然后直接在绘图函数中添加如下代码:
void CMyTestView::OnDraw(CDC* pDC)
{
CMyTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC-MoveTo(m_xw[4], m_yw[4]);
pDC-LineTo(m_xw[1], m_yw[1]);
pDC-LineTo(m_xw[3], m_yw[3]);
pDC-LineTo(m_xw[0], m_yw[0]);
pDC-LineTo(m_xw[2], m_yw[2]);
pDC-LineTo(m_xw[4], m_yw[4]);
}
//运行结果
完整的程序给你发到QQ邮箱了!
急!请问,如何用C语言画一个五角星(用*组成)?
我自己弄出来了,不好意思,我自己来回答了。
程序如下:
#includestdio.h
void
main()
{
int
i1,j1,k1,i2,j2,k2,i3,j3,k3,i4,j4,k4,m4,n4;
printf(“Let’s
draw
a
five
pointed
star
below:\n”);
for(i1=1;i16;i1++)
/*这是五角星的上面一个角*/
{
for(j1=1;j119-i1;j1++)
/*这是空格*/
printf(“
“);
for(k1=1;k1=2*i1-1;k1++)
/*这是“*”*/
printf(“*”);
printf(“\n”);
}
for(i2=1;i25;i2++)
/*这是五角星的中间两个角*/
{
for(j2=1;j23*i2-3;j2++)
printf(“
“);
for(k2=1;k2=42-6*i2;k2++)
printf(“*”);
printf(“\n”);
}
for(i3=1;i33;i3++)
/*这是中间与下部相接的部分*/
{
for(j3=1;j312-i3;j3++)
printf(“
“);
for(k3=1;k3=12+2*i3;k3++)
printf(“*”);
printf(“\n”);
}
for(i4=1;i45;i4++)
/*这是五角星的下面两个角*/
{
for(j4=1;j410-i4;j4++)
printf(“
“);
for(k4=1;k4=10-2*i4;k4++)
printf(“*”);
for(m4=1;m46*i4-3;m4++)
printf(“
“);
for(n4=1;n4=10-2*i4;n4++)
printf(“*”);
printf(“\n”);
}
printf(“Congratulations!\nWe’ve
successfully
drawn
a
beautiful
pentagon,haven’t
we?\n(*^_^*)\n”);
c语言中line画五角星程序,是线条连成的
用C语言画圆可以通过编译程序的方法实现。
程序源代码:
#include “stdio.h”
#include “graphics.h”
#include “conio.h”
main()
{
int driver=VGA,mode=VGAHI;
int i,num=15,top=50;
int left=20,right=50;
initgraph(driver,mode,””);
for(i=0;inum;i++)
{
ellipse(250,250,0,360,right,left);
ellipse(250,250,0,360,20,top);
rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));
right+=5;
left+=5;
top+=10;
}
getch();
}