利用C语言绘制正弦函数

在已经会利用C语言绘制余弦函数的基础上,我们来进一步探索如何利用C语言绘制正弦函数。


问题分析:

       很自然的,我们想到将acos(y)换成asin(y),不就可以把画余弦函数换成画正弦函数了吗。可是,事实并没有那么简单。首先,0°~360°的正弦函数并不是一个简单的左右对称的图形;其次,反三角函数x=asin(y)的值域为(-π/2,π/2),所以并不能通过简单的求反三角函数值计算出(π,2π)这一段图形的横坐标。

       这里提供一种方法。我们可以通过计算asin(y)来得到(0,π/2)这一段图形的横坐标;利用(0,π/2)的图形和(π/2,π)关于x=π/2轴对称,来得到(π/2,π)这一段图形的横坐标;通过计算π+asin(-y)的值,来得到(π,2π)这一段图形的横坐标。(详细分析过程见文章最后的附图)


具体程序:

#include <stdio.h> //详细分析过程见文章最后的附图
#include <math.h>
#define PAI 3.141592
int main()
{
    double y;
    double x,m;
    double n;
    for(y = 1; y >= 0; y -= 0.1)
    {
        m = asin(y)*10;
        for(x = 1; x < m; x++)
        {
            printf(" ");
        }
        printf("*");
        for( ; x < 31-m; x++)
        {
            printf(" ");
        }
        printf("*\n");
    }
    for( ; y >= -1; y -= 0.1)
    {
        n = asin(-y);
        m = (PAI + n)*10;
        for(x = 1;x < m; x++)
        {
            printf(" ");
        }
        printf("*");
        for( ; x < 94-m; x++)
        {
            printf(" ");
        }
        printf("*\n");
    }
    return 0;
}


运行结果:



详细分析过程:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值