今天,我们来介绍C语言中的一些简单的图像画法。
思路:我们将一个目标图像分为三部分:空格部分、星星部分,最终结合部分。
1.空格部分
在稿纸上画出草图,采用第一个for循环控制空格的打印,例如空三— 空二 — 空一。
for (int j=0,j<3,j++)
{
for(int i=j,i<3,i++)
{ printf(“ ”);}
printf("\n");
}
2.星星部分
在稿纸上画出草图,用第一个for循环控制星星的打印,例如星一 — 星二 — 星三。
for(int i=3;i>0;i--)
{
for(int j=i;j-3>=0;j+=2)
{ printf("*"); }
printf("\n");
}
3.最终结合部分
将空格部分和星星部分按照一定的方式结合在一起即可。
例如:一个角与左屏幕有一个空格距离的三角形。
for (int j=0,j<3,j++)
{
//空格部分
for(int i=j,i<3,i++)
{ printf(“ ”);}
//星星部分
for(int k=j;3-k<3;k++)
{ printf("*") ; }
printf("\n");
}
那正放可以,如果倒着呢?
同理,只是将空格和星星的变化规律互换一下即可。
for (int j=0,j<3,j++)
{
//空格部分
for(int i=j;3-i<3;i++)
{ printf(“ ”);}
//星星部分
for(int k=j;k<3;k++)
{ printf("*") ; }
printf("\n");
}
至此,我们学会了用C语言画三角形,接下来我们可以以三角形为基础,画出很多复杂的图像,正所谓,任何复杂精美的艺术品都是由很多简单的事物组成的。
接下来,我们尝试一下一个沙漏般的图像。细心的同学已经发现了,只需要把正三角和倒三角“拼”在一起不就行了。
//倒三角部分
for (int j=0,j<3,j++)
{
//空格部分
for(int i=j;3-i<3;i++)
{ printf(“ ”);}
//星星部分
for(int k=j;k<3;k++)
{ printf("*") ; }
printf("\n");
}
//拼接
printf(“\n”);
//正三角部分
for (int j=0,j<3,j++)
{
//空格部分
for(int i=j,i<3,i++)
{ printf(“ ”);}
//星星部分
for(int k=j;3-k<3;k++)
{ printf("*") ; }
printf("\n");
}
那如果把倒三角部分和正三角部分调换顺序呢?
相信同学们已经猜到了,是一个类似于高中数学学过的正八面体的主视图。
那如果将倒三角部分和正三角部分在水平方向“拼接”
是不是就是一个平行四边形了呢?如果只是对代码进行简单的拼接,貌似最后的结果不尽如人意。
我们可以把这种“拼接”的思路保留,用它来改进我们的代码。
for(int i=0;i<3;i++)
{ for(int j=i;j<3;j++)
{
printf(" ");
}
for(int k=0;k<4;k++)
{
printf("*");
}
}
现在,我们再一次成功“画”
出了平行四边形!
最后,我们希望本篇文章就像抛出一个“砖”,来引出大家思维上的“玉”。