C语言之图像篇

今天,我们来介绍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("*");
           }
}

现在,我们再一次成功“画”
出了平行四边形!

最后,我们希望本篇文章就像抛出一个“砖”,来引出大家思维上的“玉”。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值