iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言中求解图形的问题
  • 835
分享到

C语言中求解图形的问题

C语言求解图形C语言图形C求解图形问题 2022-11-16 00:11:36 835人浏览 独家记忆
摘要

目录C语言求解图形问题什么是图形问题?怎么求解图形问题?C语言常用图形函数屏幕颜色的设置和清屏函数基本图形函数设置线型和线宽填充图形函数图形存取处理函数  C语言求解图形问

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);

② 有关坐标位置的函数:

  • 返回x轴的最大值:int getmaxx( ); 
  • 返回y轴的最大值:int getmaxy( ); 
  • 返回游标在x轴的位置:int getx( );
  • 返回游标在y轴的位置:int gety( );
  • 移动游标到(x, y)点:void moveto(int x, int y);
  • 将游标从现行位置(x, y)移动到(x+dx, y+dy)的位置,移动过程中不画点:void moverel(int dx, int dy);

③ 画线函数:

画一条从点(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函数:

  • 功能:用于设置当前绘图所用的线型和宽度。
  • 原型:setlinestyle(int style, unsigned pattern, int width)
  • 参数style:用来指定所画直线的类型,取值见线型表,缺省为实线;
  • 参数width:用来指定所画直线的粗细,以像素为单位,取值见线宽表,缺省值为1个像素宽。
  • 参数pattern:该参数在用户自定义线型时使用。如果使用线型表中前4种系统预定义的线型,则该参数取值0。pattern是一个16位二进制数,每一位代表一个像素,该位为1时显示,为0时不显示。

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

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

填充图形函数

① setfillstyle函数:

  • 功能:为各种图形函数设置填充模式和颜色。
  • 原型:setfillstyle(int  pattern, int  color);
  • 参数:color指定填充所用的颜色;pattern用于指定填充模式,取值见下表。

② floodfill函数

  • 功能:用于对一指定的封闭区域进行填充,其填充模式和颜色由setfillstyle函数指定。
  • 原型:floodfill(int  x, int  y, int  border);
  • 参数:x、y指位于填充区域内任意一点的坐标,该点作为填充的起始点;border为填充区域的边界颜色。
  • 注意:使用该函数必须保证要填充的区域是完全封闭的,否则,该形状外面的区域也将被填充。

③ setfillpattern函数

  • 功能:实现用户自定义的填充模式。
  • 原型:setfillpattern(char *pattern, int color);
  • 参数:color指定用户自定义填充模式的颜色;pattern指向8个字节,一个字节对应8个像素,8*8个像素,每一位有亮暗两种(亮为1,暗为0),通过一个指向8个字节的指针判断。

图形存取处理函数  

测试要保存左上角为(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);

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

--结束END--

本文标题: C语言中求解图形的问题

本文链接: https://www.lsjlt.com/news/172929.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言中求解图形的问题
    目录C语言求解图形问题什么是图形问题?怎么求解图形问题?C语言常用图形函数屏幕颜色的设置和清屏函数基本图形函数设置线型和线宽填充图形函数图形存取处理函数  C语言求解图形问...
    99+
    2022-11-16
    C语言求解图形 C语言图形 C求解图形问题
  • C语言怎么求解迷宫问题
    这篇文章主要介绍“C语言怎么求解迷宫问题”,在日常操作中,相信很多人在C语言怎么求解迷宫问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言怎么求解迷宫问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-17
  • C语言编程实例之输出指定图形问题
    目录C语言输出指定图形C语言输出一个n行m列的图形示例代码如下总结C语言输出指定图形 用C语言打印指定图形时,主要就是根据i(行号)  来确定每一行输出的数据 输入一个数...
    99+
    2023-01-28
    C输出指定图形 C输出图形 输出指定图形
  • C语言中的盗贼(小偷)问题详解
    问题描述:警察审问4名窃贼嫌疑犯。现在已知,这4人当中仅有一名是窃贼,还知道这4个人中的每个人要么是诚实的,要么总是说谎。 这4个人给警察的回答如下。 甲说:“乙没有偷,...
    99+
    2024-04-02
  • 用C语言求解第N项斐波那契数列问题
    目录求解第N项斐波那契数列求解斐波那契数列的前n项并输出及兔子繁殖问题斐波那契数列的定义算法思路代码实现兔子繁殖问题求解第N项斐波那契数列 斐波那契数列指的是这样一个数列:1,1,2...
    99+
    2022-11-13
    C语言斐波那契数列 第N项斐波那契数列 斐波那契数列
  • C语言中的冒泡排序问题
    目录冒泡排序的原理冒泡排序的步骤冒泡排序代码冒泡排序两种不同循环方法原理总结冒泡排序的原理 冒泡排序的步骤 假设我们现在有一个无序数组 arr[] = { 2,9,1,3,7,6 ...
    99+
    2022-12-27
    C语言冒泡排序 C冒泡排序 冒泡排序
  • C语言malloc分配问题详解
    目录前言一、malloc是什么?1.1malloc定义1.2malloc函数含义二、malloc的使用2.1添加头文件2.2malloc和free2.3malloc使用注意三、mal...
    99+
    2024-04-02
  • 如何解决C语言中for循环问题
    本篇内容主要讲解“如何解决C语言中for循环问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决C语言中for循环问题”吧!今天分享一下C语言中的for循环中我们常常忽略的小问题。举一个小...
    99+
    2023-06-07
  • 详解C语言在STM32中的内存分配问题
    01、前言 不说废话,先上示例代码 uint8_t num_byte[4]; uint32_t num_word; const uint32_t num_word_const =...
    99+
    2024-04-02
  • Go语言中如何解决并发请求限流问题?
    Go语言中如何解决并发请求限流问题?在高并发的场景下,很容易出现请求过多的情况,这会给系统带来很大的压力,甚至导致系统崩溃。因此,限制并发请求数量是必不可少的。本文将介绍如何在Go语言中解决并发请求限流问题,并提供具体的代码示例。一、什么是...
    99+
    2023-10-22
    Go语言 关键词: 并发请求 限流问题
  • C语言实现24点问题详解
    目录题目描述问题分析代码实现运行结果题目描述 在屏幕上输入1〜10范围内的4个整数(可以有重复),对它们进行加、减、乘、除四则运算后(可以任意的加括号限定计算的优先级),寻找计算结果...
    99+
    2024-04-02
  • C++中的Z字形变换问题
    目录Z字形变换描述Z字形变换 描述 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALIS...
    99+
    2024-04-02
  • C语言main()函数的参数问题详解
    #include<stdio.h> void main(int argc, char* argv[]) { while (argc > 1) { ++a...
    99+
    2024-04-02
  • C语言中关于scanf函数的一些问题详解
    在学习创建二叉树时遇到了scanf的一些问题,在此记录下来 创建根节点A后理想情况是输入A的左子树,若不为空继续创建左子树,但输入A后发现重复创建了一个左子树,测试后发现输入A换行...
    99+
    2024-04-02
  • 怎么用c语言制作心形图案
    在C语言中,可以使用循环和条件语句来制作心形图案。以下是一个示例代码:c#include int main() {int i, j;...
    99+
    2023-10-20
    c语言
  • C语言结构体中内存对齐的问题理解
    目录前言思考结构体在内存中开辟空间时内存对齐的规则为什么存在内存对齐1.平台的原因2.性能的原因前言 学C的同学应该知道~ 想精通C语言就不得不面对—指针与内存 续上次指...
    99+
    2024-04-02
  • C语言中浮点数的精度丢失问题解决
    目录一 先来看一段代码运行结果:二 如何解决(1)浮点数的大小比较(2)含浮点数的表达式和0.0的比较总结一 先来看一段代码 #include<stdio.h> int ...
    99+
    2024-04-02
  • c语言怎么实现图形化输入
    在C语言中,可以使用图形用户界面(GUI)库来实现图形化输入。以下是一些常用的C语言GUI库: GTK+:GTK+ 是一个跨平台...
    99+
    2024-02-29
    c语言
  • C语言实现用 * 打印X形图案
    目录C语言 用 * 打印X形图案C语言 输出X图形C语言 用 * 打印X形图案 多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜...
    99+
    2022-11-16
    C语言打印图案 用*打印X形图案 C用*打印X形图案
  • C++中的Z字形变换问题怎么解决
    这篇“C++中的Z字形变换问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++中的Z字形变换问题怎么解决”文章吧...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作