文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言中求解图形的问题

2022-11-16 00:15

关注

C语言求解图形问题

什么是图形问题?

由字符,特殊符号或数字组成的各种形状的图形问题。

怎么求解图形问题?

用循环,确定输出图形的行数和每行上的列数,确定每行第一个字符输出的空格数,找出每行上字符变化的规律。

图形输出常用模块:

for(i=1;i<=行数;i++)
{
     for(j=1;j<=第i行前导空格数;j++)
             printf("");
     for(k=1;k<=第i行字符串;k++)
             printf(第i行,第j行字符);
     printf("\n");
}    

1.输出一个数字三角形。

代码如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{ int i,j,k;
  for(i=1;i<=5;i++)
  {for(j=1;j<=5-i;j++)
      printf(" ");
   for(k=1;k<=2*i-1;k++)
      printf("%d",k);
   printf("\n");
  }
    return 0;
}

2.输出一个菱形。

代码如下:

#include <stdio.h>
int main()
{   int i,j ,k;
      for(i=1;i<=4;i++)
       {
          for(j=1;j<=5-i;j++)
              printf(" ");
          for(k=1;k<=2*i-1;k++) 
              printf("*");
             printf("\n");
        }
        for(i=1;i<=3;i++)
         {
            for(j=1;j<=i+1;j++)
                printf(" ");
            for(k=1;k<=7-2*i;k++)
                printf("*");
              printf("\n");
          }
           return 0;
 }

C语言常用图形函数

屏幕颜色的设置和清屏函数

① 设置背景色:

void setbkcolor(int color);

② 设置前景色:

void setcolor(int color); 

③ 清除图形屏幕内容,使用清屏函数,其调用格式如下:

void cleardevice( );  

注:清除前景图形,不清除背景。 

基本图形函数

① 画点函数:

将点(x, y)置成color色:void putpixel(int x, int y, int color);

获得当前点(x, y)的颜色值:int getpixel(int x, int y); 

例:使(20, 50)的像素点置成红色输出。

putpixel(20, 50, RED);

② 有关坐标位置的函数:

③ 画线函数:

画一条从点(x0, y0)到(x1, y1)的直线:

void  line(int x0, int y0, int x1, int y1);  

画一条从现行游标到点(x, y)的直线:

void  lineto(int x, int y); 

 

画一条从现行游标(x, y)到按相对增量确定的点(x+dx, y+dy)的直线:void  linerel(int dx, int dy);

④ 画圆弧类函数:

以(x, y)为圆心,radius为半径,画一个圆:

void  circle(int x, int y, int radius);  

以(x, y)为圆心,radius为半径,从stangle开始到endangle结束(用度表示),画一段圆弧线,逆时针方向:

void  arc(int x, int y, int stangle, int endangle, int radius);  

以(x, y)为中心,xradius、yradius为x轴和y轴半径,从角stangle开始,endangle结束,画一段椭圆线,

当stangle=0,endangle=360时,画出一个完整的椭圆:

void ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius);

⑤ 画多边形类函数:

以(x1, y1)为左上角,(x2, y2)为右下角,画一个矩形框:

void rectangle(int x1, int y1, int x2, inty2); 

画一个顶点数为numpoints,各顶点坐标由整型数组polypoints给出的多边形。polypoints必须至少有2倍顶点数个元素。

每个顶点坐标都定义为x、y,且x在前。当画一个封闭多边形时,numpoints的值取实际多边形的顶点数   +1,且数组polypoints中第一个和最后一个点的坐标相同:void drawpoly(int numpoints, int *polypoints);

设置线型和线宽

① 线型:C语言能够使用的线型如表所示。

② 线宽:C语言能够使用的线宽如表所示。

③ setlinestyle函数:

例如:希望设置的线型为前12位不显示,后4位显示。

此时,pattern值为15,调用方法为setlinestyle(4, 15, 1)。

填充图形函数

① setfillstyle函数:

② floodfill函数

③ setfillpattern函数

图形存取处理函数  

测试要保存左上角为(x1, y1),右下角为(x2, y2)的图形屏幕区域内的全部内容需多少个字节:

unsigned imagesize(int x1, int y1, int x2, int y2); 

将左上角为(x1, y1),右下角为(x2, y2)的图形屏幕区域内的图像保存在内存中,指针为mapbuf:

void getimage(int x1, int y1, int x2, int y2, void  *mapbuf);

将图像输出到左上角为点(x, y)的位置上,其中参数op规定如何释放内存中的图像,具体值如表:

void putimage(int x, int y, void * mapbuf, int op); 

文本输出函数 在现行位置输出字符串指针textstring所指的文本:

void outtext(char *textstring);

在规定的(x, y)位置输出字符串指针textstring所指的文本,其中x和y为象元坐标:

void outtextxy(int x, int y, char *textstring);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯