精华内容
下载资源
问答
  • 正弦曲线函数 设计一个正弦曲线函数,当调用该函数时,可以打印出幅值、频率、相位、线型均可调 的正弦曲线,具体要求: 1. 幅值、频率、相位、线型分别是该函数的输入参数; 2. 需要有主函数调用该函数,主函数...
  • 刚学习C语言没多久,希望各位大神帮帮忙! 由用户输入字符串str,str的格式为“ax + b/x”,其a和b为对号函的系数,取值范围是1一16之间的整数,需要设计程序实现以下功能. 1.绘制str代表的对勾函数曲线。 2....
  • 非程序员,在做一个小小项目用到了代码,求大神指教,以下为具体应用场景: 手里有一个显控的一体机,数据输入它来处理,希望显示拟合的函数图像和计算值。
  • C语言实现正余弦函数图像输出

    千次阅读 2009-05-13 23:16:00
    http://www.cnblogs.com/shiyangxt/archive/2008/09/14/1290827.html C语言实现源码,供参考!余弦函数:Code highlighting produced by Actipro CodeHighlighter (freeware)...
    展开全文
  • C语言实现源码,供参考! 余弦函数: #include<stdio.h> #include<math.h>voidmain() {doubley;intx,m;for(y=1;y>=-1;y-=0.1)/*y为列方向,值从1到-1,步长为0.1*/ { m=acos(y)*10;/*计算出y对应的...

    C语言实现源码,供参考!

    余弦函数:

    复制代码
    #include<stdio.h>
    #include
    <math.h>
    void main()
    {
    double y;
    int x,m;
    for(y=1;y>=-1;y-=0.1/*y为列方向,值从1到-1,步长为0.1*/
    {
    m
    =acos(y)*10/*计算出y对应的弧度m,乘以10为图形放大倍数*/
    for(x=1;x<m;x++) printf(" ");
    printf(
    "*"); /*控制打印左侧的 * 号*/
    for(;x<62-m;x++)printf(" ");
    printf(
    "*\n"); /*控制打印同一行中对称的右侧*号*/

    }
    复制代码

     

    正弦函数:

     

    复制代码
    #include<stdio.h> 
    #include
    <math.h> 
    main(){ 
    double y; 
    int x,m,i; 
    printf(
    "y=sin(x) [0<x<2*pi]\n"); 
    for(y=1;y>=-1;y-=0.1){ /*y为列方向,值从1到-1,步长为0.1*/
    if(y>=0){ 
    m
    =asin(y)*10;  /*计算出y对应的弧度m,乘以10为图形放大倍数*/
    for(x=1;x<m;x++)printf(" "); 
    printf(
    "*");  /*控制打印 * 号*/
    for(;x<31-m;x++)printf(" "); 
    printf(
    "*\n");} /*控制打印同一行中对称的*号*/
    else
    m
    =-1*asin(y)*10
    for(i=0;i<32;i++)printf(" "); 
    for(x=1;x<m;x++)printf(" "); 
    printf(
    "*"); 
    for(;x<31-m;x++)printf(" "); 
    printf(
    "*\n"); 


    }
    复制代码

     本文转自施杨博客园博客,原文链接:http://www.cnblogs.com/shiyangxt/archive/2008/09/14/1290827.html,如需转载请自行联系原作者

    展开全文
  • C语言图形函数介绍

    2007-11-14 17:47:20
    介绍最基本的C语言图像输出
  • 图形输出C语言初学者经常遇到的问题,实际上大多数简单的图形并不需要使用复杂的控制结构,所见即所得的方法更加简洁,不过对于复杂的图形或者函数图像,使用控制结构会更好。在使用控制结构输出图形时,要把握一...

               第二章【续集】 图形和函数图像的绘制


      前面我们详细介绍了C语言绘制常见图形和正弦余弦图像的方法,此篇文章为上一篇http://blog.csdn.net/duanxu_yzc/article/details/12745757,强烈建议:先看上一篇再看续集!!!)的继续,主要有以下内容:

          圆形和抛物线的绘制

          绘制函数图像的第二种方法

          同一坐标系下绘制多个函数图像(交叉图像)


    4、圆形和抛物线的绘制

       有了前面绘制三角函数图像的基础,圆形和抛物线的绘制应该非常简单,我们以圆形为例说明:

    a、观察需要绘制的图像


          每行需要输出两个点,而且图像左右轴对称

       b、使用的函数:(x-10)2+(y-10)2=102

       c、输出21行,行坐标间距为1

       d、左半圆的列号:10-sqrt(100-(r-10)*(r-10))

          右半圆的列号:10+sqrt(100-(r-10)*(r-10))

       e、调整输出行宽比(因屏幕的行宽比不是一比一,因此不进行调整会导致输出为椭圆)

       按照以上步骤编写代码如下:

      

     C++ Code By DuanXu-yzc
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    /*
     * 绘制圆形(圆心坐标(10,10),半径为10)
     */

    #include <stdio.h>
    #include <math.h>

    int main ( void )
    {
        int rows;
        int r;
        int c;
        float adjust;

        rows = 20;
        adjust = 2.3;   // 屏幕行宽比(输出屏幕行间距和列间距不同,用adjust作为调整)

        for ( r=20; r>=0; r-- )
        {
            // 左半圆
            for ( c=0; c<adjust*(10-sqrt(100-(r-10)*(r-10))); c++ )
                printf ( " " );
            printf ( "*" );

            // 右半圆
            for ( ; c<adjust*(10+sqrt(100-(r-10)*(r-10))); c++ )
                printf ( " " );
            printf ( "*" );

            printf ( "\n" );
        }

        return 0;
    }

    得到的图像:


    抛物线的绘制与圆形极为相似,直接上代码和结果:

    /*
     * 绘制抛物线
     */
    #include <stdio.h>
    #include <math.h>
    
    int main ( void )
    {
    	int rows;
    	int r;
    	int c;
    	double adjust = 2.3;
    
    	rows = 20;
    
    	for ( r=rows; r>=0; r-- )
    	{
    		for ( c=0; c<adjust*(10-sqrt(5*r)); c++ )
    			printf ( " " );
    		printf ( "*" );
    
    		for ( ; c<adjust*(10+sqrt(5*r)); c++ )
    			printf ( " " );
    		printf ( "*" );
    
    		printf ( "\n" );
    	}
    
    	return 0;
    }
    


    5、绘制函数图像的第二种方法

        到目前为止,我们使用的方法都是逐行输出,然后通过反函数找到每行需要输出星号的位置,最后通过输出相应个数的空格,确定星号的位置,输出星号。现在介绍另外一种方法,其实与已知的方法很相似,区别在于不需要先输出空格来确定星号的位置,而是逐个判断每行中的各列需要输出的字符是空格还是星号,以圆形为例,每行中,只有列号(调整比例后的)为adjust*(10-sqrt(5*r)和adjust*(10+sqrt(5*r)的位置需要输出星号,其余位置均输出空格。按照这个方法我们重新编写程序如下:

    /*
     * 绘制圆形(圆心坐标(10,10),半径为10)的另一种方法
     */
    
    #include <stdio.h>
    #include <math.h>
    
    int main ( void )
    {
    	int rows;
    	int r;
    	int c;
    	int left;
    	int right;
    	float adjust = 2.3;
    
    	rows = 20;
    	for ( r=rows; r>=0; r-- )
    	{
    		left = adjust*(10-sqrt(100-(r-10)*(r-10)));	// 左半圆的列号(将浮点转化为整型)
    		right = adjust*(10+sqrt(100-(r-10)*(r-10)));	// 右半圆的列号(将浮点转化为整型)
    
    		for ( c=0; c<=adjust*20; c++ )
    		{
    			if ( c == left || c == right )
    				printf ( "*" );
    			else
    				printf ( " " );
    		}
    		printf ( "\n" );
    	}
    
    	return 0;
    }
    
    得到图像:

    (这个图像与前一种方法绘制的图像有一处明显不同,为什么?请读者思考。)

     

       6、同一坐标系下绘制多个函数图像(交叉图像)

       我们来观察一下直线和圆在同一坐标系下相交的图形:


        同样,这个图像也需要逐行输出,如果按照第一种绘制方法,就需要确定每行中星号的位置,我们发现,图像上半部分的星号依次出现在:左半圆、右半圆、直线,中间部分是:左半圆、直线、右半圆,下半部分是:直线、左半圆、右半圆,这使得我们需要在程序中需要针对不同的行段采取不同的输出顺序,如果图像更复杂的话,这同情况会变得更糟糕。我们再看看第二种绘制方法,这种方法只需要知道哪些地方需要输出星号,并不需要明确的顺序,因此更适合这种交叉图像输出的情况,下面是绘制直线和圆的代码和结果:

    /*
     * 同一坐标系下绘制圆形和直线
     */
    #include <stdio.h>
    #include <math.h>
    
    int main ( void )
    {
    	int rows = 20;
    	int r;
    	int c;
    	int round_l;
    	int round_r;
    	int line;
    
    	float adjust = 2.3;
    
    	for ( r=rows; r>=0; r-- )
    	{
    		round_l = adjust*(10-sqrt(100-(r-10)*(r-10)));
    		round_r = adjust*(10+sqrt(100-(r-10)*(r-10)));
    		line = adjust*r;
    
    		for ( c=0; c<=adjust*20; c++ )
    			if ( ( c == round_l  &&  c == line ) ||
    			     ( c == round_r  &&  c == line ) )
    				printf ( "+" );			// 交叉的点标记'+'
    
    			else if ( c == round_l  ||  c == round_r )
    				printf ( "*" );			// 圆形边界标记'*'
    
    			else if ( c == line )
    				printf ( "+" );			// 直线标记'+'
    
    			else
    				printf ( " " );			// 其它位置标记空格
    
    		printf ( "\n" );
    	}
    
    	return 0;
    }
    

        使用同样的方法绘制余弦和正弦的交叉图像如下:

    /*
     * 同一坐标系中绘制余弦和正弦图像
     */
    #include <stdio.h>
    #include <math.h>
    
    #define PI 3.14
    
    int main ( void )
    {
    	int rows = 20;
    	float r;
    	int c;
    	int sin_1;
    	int sin_2;
    	int sin_3;
    	int sin_4;
    	int cos_1;
    	int cos_2;
    
    	float adjust = 10;
    
    	for ( r=1; r>0; r-=0.1 )
    	{
    		sin_1 = adjust * asin(r);
    		sin_2 = adjust * (PI-asin(r));
    		cos_1 = adjust * acos(r);
    		cos_2 = adjust * (2*PI-acos(r));
    
    		for ( c=0; c<=adjust*2*PI; c++ )
    			if ( ( c == sin_1  &&  c == cos_1 )  ||
    			     ( c == sin_2  &&  c == cos_1 )  ||
    			     ( c == sin_1  &&  c == cos_2 )  ||
    			     ( c == sin_2  &&  c == cos_2 ) )
    				printf ( "+" );
    
    			else if ( c == sin_1  || c == sin_2 )
    				printf ( "*" );
    
    			else if ( c == cos_1  ||  c == cos_2 )
    				printf ( "+" );
    
    			else
    				printf ( " " );
    
    		printf ( "\n" );
    	}
    
    	for ( r=0; r>=-1; r-=0.1 )
    	{
    		sin_3 = adjust * (PI-asin(r));
    		sin_4 = adjust * (2*PI+asin(r));
    		cos_1 = adjust * acos(r);
    		cos_2 = adjust * (2*PI-acos(r));
    
    		for ( c=0; c<=adjust*2*PI; c++ )
    			if ( ( c == sin_3  &&  c == cos_1 )  ||
    			     ( c == sin_4  &&  c == cos_1 )  ||
    			     ( c == sin_3  &&  c == cos_2 )  ||
    			     ( c == sin_4  &&  c == cos_2 ) )
    				printf ( "+" );
    
    			else if ( c == sin_3  || c == sin_4 )
    				printf ( "*" );
    
    			else if ( c == cos_1  ||  c == cos_2 )
    				printf ( "+" );
    
    			else
    				printf ( " " );
    
    		printf ( "\n" );
    	}
    
    	return 0;
    }
    




     

    本章总结

            图形输出是C语言初学者经常遇到的问题,实际上大多数简单的图形并不需要使用复杂的控制结构,所见即所得的方法更加简洁,不过对于复杂的图形或者函数图像,使用控制结构会更好。在使用控制结构输出图形时,要把握一个原则:只能逐行输出,因此,在输出一行时必须把这一行中所有需要输出的字符全部输出,所以,找到每行中各个位置需要输出的字符(或者说,各字符在每行中的位置)尤为关键!我们有两种方法来确定位置,其中第二种方法更通用简洁。在输出图形时,特别是函数图像,要充分利用对称、平移关系简化程序,另外,要注意调节屏幕的行宽比和适当的图像放大,防止图像失真。


    声明

        1、此博文版权归断絮所有,如需转载请注明出处http://blog.csdn.net/duanxu_yzc/article/details/12970225,谢谢。

        2、在未经博主断絮允许的情况下,任何个人和机构都不得以任何理由出版此文章,否则必将追究法律责任!


    展开全文
  • 有趣简单必学基础的C语言控制台案例-输出正余弦函数,直线,圆图像,详细解释请查看我的博客相关文档内容。
  • gnuplot作为常用的绘图工具之一,它除了可以直接作为绘图工具,也可以使用...这里我们通过画一个正弦函数图像,来练习一下怎么使用gnuplot对C语言产生的数据进行绘图。 x为弧度,那么正弦函数表达式为:y=sin(x*...

    gnuplot作为常用的绘图工具之一,它除了可以直接作为绘图工具,也可以使用C语言、Java、Python等编程语言产生的数据进行绘图。

    我们有时候需要实现数据的图像化,可以让我们更直观观察数据变化情况,所以学会使用gnuplot进行C语言绘图是很有用的。这里我们通过画一个正弦函数的图像,来练习一下怎么使用gnuplot对C语言产生的数据进行绘图。

    x为弧度,那么正弦函数表达式为:y=sin(x*(pi/180))

    1. C语言编译运行并产生.dat文件

    ① C语言程序代码
    x取[0,360],用C语言编程,计算并输出360个弧度值处的函数值。

    #include <stdio.h>
    #include <math.h>
    #define PI 3.1415926
    int main()
    {
    	for (int i = 0; i <361; i++)
    	{
    		printf("%.16f %.16f\n",(float)i,sin(i*(PI/180)));
    	}
    	return 0;
    }
    

    我用的是NotePad++编辑器,然后在路径E:\tcc_project\sin路径下将C语言程序代码保存为sin.c文件。

    ② 编译产生.exe文件
    打开命令行窗口,进入sin.c文件存放路径。

    C:\Users\Administrator>E:
    E:\>cd E:\tcc_project\sin
    

    生成.exe并运行

    E:\tcc_project\sin>tcc sin.c –o sin.exe
    E:\tcc_project\sin>sin.exe
    

    输出360行数据,部分如下图所示:
    在这里插入图片描述
    ③ 生成.dat文件

    E:\tcc_project\sin>sin.exe > sin.dat
    

    这个sin.dat文件可以用文本编辑器打开,共有360行数据。

    2. 配置gnuplot并完成绘图

    ① 配置gnuplot

    安装gnuplot后,将gnuplot.exe所在的路径添加到Windows的路径path中,使其能在命令窗口执行。

    路径添加方法:
    我的电脑->右键->属性->高级系统设置->环境变量->path编辑
    在后面添加上gnuplot.exe所在的路径,我的是D:\gnuplot\bin,如图所示:
    在这里插入图片描述

    在sin.dat所在的路径下,从命令窗口执行gnuplot.exe(输入gnuplot命令),如下图所示:
    在这里插入图片描述
    在gnuplot命令行提示符gnuplot>下输入作图指令:

    gnuplot>plot [0:360] [-1:1] "sin.dat" u 1:2 w l
    

    回车后就得到了最后的图像。
    在这里插入图片描述
    3. 不产生.dat文件的绘图方法

    除了上面的方法,我们也可以不用产生.dat文件,在产生.exe文件之后,直接执行产生数据,利用这些数据作图。此时的作图指令为:

    gnuplot>plot [0:360] [-1:1] "<sin.exe" u 1:2 w l
    

    也就是将sin.dat改为<sin.exe既可,注意前面有无”<”的区别。

    在这里插入图片描述

    展开全文
  • 对于给出的n个表达式,依次用字母a-z表示每个函数图像上的的所有点。两个图像的交点 或者 图像与坐标轴的交点 用 ‘.’ 表示。输出格式如下所示。各组之间无空行。 Sample Input 2 y=-x-1 y=x^4+1-x^3 ...
  • 这是一个图像编程的PPt 上面有一些c语言图像的基本函数,有怎样画图,怎样定位输出字符串等
  • C语言实现的SIFT图像匹配算法

    热门讨论 2011-08-28 19:27:28
    C语言实现的SIFT特征匹配算法,不用配置GSL库,会C语言的人都能看懂,SIFT的函数C语言重新实现,每一步SIFT步骤都有图像输出演示,很好的东东!
  • 灰度变换函数 s = T(r) 其中r为输入图像在(x, y)点处的灰度值,s为输出图像在(x, y)点处的灰度值 灰度变换的作用 上图所示的两幅T(s)函数图像曲线,第一幅图可以增强图像对比度,第二幅图可以对图像进行二值化...
  • C语言编写的一个删除二值图像中不连通小区域的函数,运行该函数需要OPENCV的支持,输入src,输出为删除了不连通小区域的src:void myDeleteSmallArea(IplImage *src){ doubletempArea; CvMemStorage*...
  • 函数printf可以用格式说明“%p”指定指着输出,与格式说明“%p”对应的可以是指为地址的表达式,如在: int k,*pk=&amp;amp;amp;amp;k,a[10]; printf(&amp;amp;quot;%p,%p,%p\n&amp;amp;quot;,pk,&...
  • C语言

    2014-11-21 08:49:00
    流程图是算法的一种图像化表示方式Area 面积程序:为了完成某个目标问题给计算机下达的命令汇编语言:机器语言、汇编语言、高级语言return 法文exit 退出高级语言的编译和执行过程:高级语言→编译程序\解释程序...
  • C高级编程,包含图像,中断,发声,汉字显示等程序编程技术 目录 1 文本的屏幕输出和键盘输入........................................................................................... 1 1.1 文本的屏幕输出........
  • C语言复习笔记 2

    2017-04-06 16:33:33
    2 C语言初探2.1 屏幕上显示内容从计算机获取信息的两种方式:屏幕显示文字、图像、视频等;喇叭发出的声音。输入、输出、基本程序框架、字符、字符串、函数 puts("hello");2.2 基本概念C语言自带的函数称为库函数...
  • 偶尔用一下C,总觉得直接使用文件函数和内存管理函数很不方便,于是便写了几个C语言函数,考虑到有时要用到接口流IStream,如我在《在C语言Windows应用程序中使用GDI+》介绍的C语言GDI+图像操作函数就用到了...
  • c语言经典案例

    2014-10-30 08:06:57
    第6章 数据输入与输出函数 77 实例060 使用字符函数输入/输出字符 78 实例061 输出相对的最小整数 79 实例062 将小写字母转换为大写字母 80 实例063 水池注水问题 80 实例064 用*号输出图案 81 实例065 输出一个字符...
  • 傅里叶变换C语言.zip

    2020-04-13 09:28:33
    Opencv中使用的是dft函数,但是在很多场合需要纯C的代码,此程序完成了dft的函数功能,是纯C语言版本,只用了最基础的库。文件中有一幅lena的图像,将其归一化为32*32的大小,并将其像素值作为输入变量,输出结果为...
  • 该资源提供了BMP格式图像转JPEG格式图像函数,在数字图像处理后,进行图像输出时会用得到,非常方便。不依赖于其他框架,纯C语言实现。
  • 一元多项式的创建,输出,加减乘除运算,求导运算,一阶微积分运算,求函数值,画出函数图像,清屏,退出等操作。
  • 初识c语言、掌握c语言数据类型、表达式与运算符、数据输入/输出函数、设计选择/分支结构程序、循环控制、数组的应用、字符数组、函数的应用、变量的存储类别、c语言中的指针、结构体的使用、共用体的综合应用、使用...
  • C语言程序设计.rar

    2009-09-28 13:44:30
    9.1.2 屏幕图像的存取技巧 179 9.1.3 屏幕显示格式的控制方法 181 9.1.4 使图形软件脱离BGI的方法 182 9.1.5 拷贝屏幕图形的方法 183 9.1.6 随意改变VGA显示器显示颜色的 技巧 185 9.1.7 用随机函数实现动画的技巧 ...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 135
精华内容 54
关键字:

c语言输出函数图像

c语言 订阅