控制台绘制正弦曲线和余弦曲线同时显示

简介:

看这一篇时如果不会绘制正弦/余弦曲线可以先看看这一篇哦:控制台绘制正弦/余弦曲线

那么,如果想要同时显示的话,我们可能需要在同一行中绘制出3个或者4个点了。我的思路比较简略,不过算法看上去非常非常不整洁,还望得到大家的帮助……

我通过Y等于二分之根号二和负二分之根号二以及Y轴将整个图形分成4层,从上往下依次绘制。具体看代码啦……

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

int main()
{
    double y;
    int x,k1,k2;
    for(y=1;y>=-1;y-=0.1)
    {
        k1=acos(y)*10;
        k2=asin(y)*10;

        if(k1<k2&&k2>=0)
        {
            for(x=1;x<k1;x++)
                printf(" ");
            printf("*");
            for(x=k1+1;x<k2;x++)
                printf(" ");
            printf("*");
            for(;x<30-k2;x++)
                printf(" ");
            printf("*");
            for(;x<62-k1;x++)
                printf(" ");
            printf("*\n");
        }
        else if(k2<k1&&1<=k2&&k2<=15)
        {
            for(x=1;x<k2;x++)
                printf(" ");
            printf("*");
            for(x=k2+1;x<k1;x++)
                printf(" ");
            printf("*");
            for(;x<30-k2;x++)
                printf(" ");
            printf("*");
            for(x=30-k2;x<62-k1;x++)
                printf(" ");
            printf("*\n");
        }
        else if(k1<(30-k2)&&(30-k2)<(62-k1)&&-15<=k2&&k2<=-1)
        {
            for(x=1;x<k1;x++)
                printf(" ");
            printf("*");
            for(;x<31-k2;x++)
                printf(" ");
            printf("*");
            for(;x<62-k1;x++)
                printf(" ");
            printf("*");
            for(;x<61+k2;x++)
                printf(" ");
            printf("*\n");
        }
        else if((62-k1)<(31-k2)&&-15<=k2&&k2<=-1)
        {
            for(x=1;x<k1;x++)
                printf(" ");
            printf("*");
            for(;x<62-k1;x++)
                printf(" ");
            printf("*");
            for(;x<31-k2;x++)
                printf(" ");
            printf("*");
            for(;x<61+k2;x++)
                printf(" ");
            printf("*\n");
        }
    }
    return 0;
}

这里写图片描述

大家有什么更好的想法欢迎留言啊~

【这里还是源码,不需要资源积分】



为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp

目录
相关文章
|
Web App开发 应用服务中间件 Go
尝鲜:如何搭建一个简单的webrtc服务器
前几天我一朋友问我有关webrtc的事,简单了解了下相关知识,搭建了一个webrtc的服务,以及经历的各种踩坑事件,感觉踩坑主要是Python、Node、OpenSSL等版本问题和证书问题导致。本来以为很简单的搭建,但在搭建的过程中遇到各种阻碍,写一篇文章梳理一下。
12733 0
|
编解码 前端开发 Android开发
Android经典实战之TextureView原理和高级用法
本文介绍了 `TextureView` 的原理和特点,包括其硬件加速渲染的优势及与其他视图叠加使用的灵活性,并提供了视频播放和自定义绘制的示例代码。通过合理管理生命周期和资源,`TextureView` 可实现高效流畅的图形和视频渲染。
810 12
二进制编译安装/usr/bin/ld: cannot find -latomic报错排查思路
排查过程 /usr/bin/ld: cannot find -latomic主要观察这句报错内容,一般出现这种报错,都是缺少了一些函式库文件导致,编译不同的软件,报错错也是都不一样的,相同的一定就是有这句话:/usr/bin/ld: cannot find。
1450 0
二进制编译安装/usr/bin/ld: cannot find -latomic报错排查思路
|
存储 Java
Java数据结构之第五章、LinkedList与链表
由于其底层是一段连续空间,当在ArrayList任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后搬移,时间复杂度为O(n),效率比较低,因此ArrayList不适合做任意位置插入和删除比较多的场景。
143 0
|
存储 NoSQL 中间件
[中间件~大厂面试题] 腾讯三面,40亿的QQ号如何去重
[中间件~大厂面试题] 腾讯三面,40亿的QQ号如何去重
368 0
|
人工智能 前端开发 开发工具
Agent调研--19类Agent框架对比(上)
Agent调研--19类Agent框架对比(上)
11700 1
|
机器学习/深度学习 前端开发 调度
技术好文:TVM适配NN编译Compiler缺陷
技术好文:TVM适配NN编译Compiler缺陷
|
SpringCloudAlibaba 中间件 微服务
手撸RPC真的有那么难吗?
大家好,我是冰河~~ 最近,在冰河的星球群里有些小伙伴发了一张截图,大体意思就是有些小伙伴在面试时,简历上写了自己开发了RPC框架,但是在面试的过程中,面试官顺着这个RPC框架问了小伙伴们一些基础的知识点问题,结果大家都没回答上来。
710 0
手撸RPC真的有那么难吗?
|
数据采集 人工智能 异构计算
一颗GPU,秒出3D模型!OpenAI重磅新作:Point-E用文本即可生成三维点云模型(1)
一颗GPU,秒出3D模型!OpenAI重磅新作:Point-E用文本即可生成三维点云模型
346 0