C语言实现几何图形绘制

文章目录

    • 前言
    • 三角形
      • 直角三角形
        • for-while
        • for-for
        • 旋转90°for-while
        • 旋转90°for-for
        • for—for-while旋转180°
        • for-for-for旋转180°
        • for—for-while旋转270°
        • for-for-for旋转270°
      • 等边三角形
        • for—for-while
        • for-for-for
        • 等边三角形(旋转90°)
        • 等边三角形(旋转180°)
      • 等边三角形(旋转270°)
    • 圆形
    • 心形
    • 菱形
    • 曲线
    • 有趣的图形

前言

学习C语言最好自己动手敲代码,下面虽然我会把源代码贴在下面,但请读者不要复制(虽然我以前也是这样干的),自己敲一遍会有更多的感受,更多的理解,复制代码去揣测代码是不好的习惯,不然就像我一样,在学C语言遇到烧脑的逻辑代码就放弃,现在又来补救,要学会遇到问题时,就要有打破沙锅问到底的精神,这也是学习的精神,在这个信息化时代,计算机系的你们,要学会利用网络这个大环境,学习一些优秀的东西,大多数大学课本上的东西都太陈旧了,太多已经不适应现代的需求,在网络上学习是不错的选择。

三角形


直角三角形

for-while



#include"stdio.h"
int main()
{
    for (size_t i = 0; i <11; i++)//控制打印行数(一行为一个循环)
    {
    size_t j=0;
        while (j<=i) //控制打印列数
        {
         printf("?");
         j++;
        }
        printf("\n"); //每一次列循环后另起行
    }
    
}

for-for


#include "stdio.h"
int main()
{
    for (size_t i = 0; i < 10; i++) //控制打印行数(一行为一个循环)
    {
        for (size_t j = 0; j <= i; j++) //控制打印列数
        {
            printf("?");
        }
        printf("\n"); //每一次列循环后另起行
    }
}

输出图形如下图:

C语言实现几何图形绘制_第1张图片

旋转90°for-while


#include"stdio.h"
int main()
{
    for (size_t i = 0; i <10; i++)//控制打印行数(一行为一个循环)
    {
    size_t j=10;
        while (j>i) //控制打印列数
        {
         printf("?");
         j--;
        }
        printf("\n"); //每一次列循环后另起行
    }
    
} 

旋转90°for-for


#include "stdio.h"
int main()
{
    for (size_t i = 0; i < 10; i++) //控制打印行数(一行为一个循环)
    {
        for (size_t j = 10; j > i; j--) //控制打印列数
        {
            printf("?");
        }
        printf("\n"); //每一次列循环后另起行
    }
} 

输出图形如下图:

C语言实现几何图形绘制_第2张图片

for—for-while旋转180°


#include"stdio.h"
int main()
{
    for (size_t i = 0; i <11; i++)//控制打印行数(一行为一个循环)
    {
    size_t j=1;
        while (j<=i) //控制打印列数
        {
         printf("  ");//两个空格时是直角三角形,一个空格是等腰三角形
         j++;
        }
        size_t k=10;
               while (k>i) //控制打印列数
        {
         printf("?");
         k--;
        }
        printf("\n"); //每一次列循环后另起行
    }
    
}

for-for-for旋转180°


#include "stdio.h"
int main()
{
    for (size_t i = 0; i < 10; i++) //控制打印行数(一行为一个循环)
    {
         for (size_t j = 1; j <= i; j++) //控制打印列数
        {
            printf("  ");//两个空格时是直角三角形,一个空格是等腰三角形
        }
        for (size_t k = 10; k>i; k--) //控制打印列数
        {
            printf("?");
        }
        printf("\n"); //每一次列循环后另起行
    }
} 

输出图形如下图:

C语言实现几何图形绘制_第3张图片

for—for-while旋转270°


#include"stdio.h"
int main()
{
    for (size_t i = 0; i <11; i++)//控制打印行数(一行为一个循环)
    {
    size_t j=10;
        while (j>i) //控制打印列数
        {
         printf("  ");//两个空格时是直角三角形,一个空格是等腰三角形
         j--;
        }
        size_t k=0;
               while (k<=i) //控制打印列数
        {
         printf("?");
         k++;
        }
        printf("\n"); //每一次列循环后另起行
    }
    
}

for-for-for旋转270°


#include "stdio.h"
int main()
{
    for (size_t i = 0; i < 10; i++) //控制打印行数(一行为一个循环)
    {
         for (size_t j = 10; j > i; j--) //控制打印列数
        {
            printf("  ");//两个空格时是直角三角形,一个空格是等腰三角形
        }
        for (size_t k = 0; k<=i; k++) //控制打印列数
        {
            printf("?");
        }
        printf("\n"); //每一次列循环后另起行
    }
} 

输出图形如下图:

C语言实现几何图形绘制_第4张图片

等边三角形


等边三角形代码和直角三角形旋转270°一样,只是两个空格变成一个空格。

for—for-while


#include"stdio.h"
int main()
{
    for (size_t i = 0; i <11; i++)//控制打印行数(一行为一个循环)
    {
    size_t j=10;
        while (j>i) //控制打印列数
        {
         printf(" ");//两个空格时是直角三角形,一个空格是等腰三角形
         j--;
        }
        size_t k=0;
               while (k<=i) //控制打印列数
        {
         printf("?");
         k++;
        }
        printf("\n"); //每一次列循环后另起行
    }
    
}

for-for-for


#include "stdio.h"
int main()
{
    for (size_t i = 0; i < 10; i++) //控制打印行数(一行为一个循环)
    {
         for (size_t j = 10; j > i; j--) //控制打印列数
        {
            printf(" ");//两个空格时是直角三角形,一个空格是等腰三角形
        }
        for (size_t k = 0; k<=i; k++) //控制打印列数
        {
            printf("?");
        }
        printf("\n"); //每一次列循环后另起行
    }
} 

输出图形如下图:

C语言实现几何图形绘制_第5张图片

等边三角形(旋转90°)


#include "stdio.h"
int main()
{
    for (size_t i = 0; i < 5; i++) //控制打印行数(一行为一个循环)
    {
        size_t j = 0;
        while (j <= i) //控制打印列数
        {
            printf("?");
            j++;
        }
        printf("\n"); //每一次列循环后另起行
    }
    for (size_t i = 0; i < 4; i++) //控制打印行数(一行为一个循环)
    {
        size_t j = 4;
        while (j > i) //控制打印列数
        {
            printf("?");
            j--;
        }
        printf("\n"); //每一次列循环后另起行
    }
}

输出图形如下图:

C语言实现几何图形绘制_第6张图片

等边三角形(旋转180°)


#include "stdio.h"
int main()
{
    for (size_t i = 0; i < 10; i++) //控制打印行数(一行为一个循环)
    {
         for (size_t j = 1; j <= i; j++) //控制打印列数
        {
            printf(" ");//两个空格时是直角三角形,一个空格是等腰三角形
        }
        for (size_t k = 10; k>i; k--) //控制打印列数
        {
            printf("?");
        }
        printf("\n"); //每一次列循环后另起行
    }
} 

输出图形如下图:

C语言实现几何图形绘制_第7张图片

等边三角形(旋转270°)


#include "stdio.h"
int main()
{
    for (size_t i = 0; i < 5; i++) //控制打印行数(一行为一个循环)
    {
        for (size_t k = 5; k > i; k--)
        {
            printf("  ");
        }

        size_t j = 0;
        while (j <= i) //控制打印列数
        {
            printf("?");
            j++;
        }
        printf("\n"); //每一次列循环后另起行
    }
    for (size_t i = 0; i < 4; i++) //控制打印行数(一行为一个循环)
    {
        for (size_t k = 0; k <= i+1; k++)
        {
            printf("  ");
        }
        size_t j = 4;
        while (j > i) //控制打印列数
        {
            printf("?");
            j--;
        }
        printf("\n"); //每一次列循环后另起行
    }
}

输出图形如下图:

C语言实现几何图形绘制_第8张图片

圆形


心形


有时候程序员也必须懂点浪漫,对心怡的女孩子,你不会说,但你要有行动表示你对她的在意。所用方程

C语言实现几何图形绘制_第9张图片

若点 (x,y) 让方程左边等于0,则这个点在这个心形曲线上;若让方程左边小于0,则这个点在这个心形线内;若让方程左边大于0,则这个点在这个心形线外。我们要做的就是写一个双重循环,遍历x和y的值,将心形线以内的地方,涂上某一个字符,比如‘❤️’。

分析上图可知:

y的上界大概是1.3;下界大概是-1.1;所以,我们可以从1.3逐渐减少到-1.1,初始我们可以选取步长为0.1。同理,对于x,可以看出他的左右边界大概为-1.2和+1.2,我们就从-1.2遍历到1.2,步长选择0.05。逐行输出,从上到下。

代码实现如下:

#include "stdio.h"
#include "math.h"
int main()
{
    for ( float y = 1.3 ; y >= -1.1 ; y -= 0.1 ) //遍历y的值,从上到下,步长为0.05
    {
        for (float x = -1.2 ; x <= 1.2 ; x += 0.05)//遍历x的值,从左到右,步长为0.05
        {
            if (pow((x*x+y*y-1),3)-x*x*y*y*y <= 0.0)//利用方程进行填充
            {
                printf("❤️");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
}


输出结果如下:

C语言实现几何图形绘制_第10张图片

C语言实现几何图形绘制_第11张图片

另外一个方程:

C语言实现几何图形绘制_第12张图片C语言实现几何图形绘制_第13张图片

分析上图可知:

y的上界大概是1.3;下界大概是-0.8;所以,我们可以从1.3逐渐减少到-0.8,初始我们可以选取步长为0.1。同理,对于x,可以看出他的左右边界大概为-1.1和+1.1,我们就从-1.1遍历到1.1,步长选择0.05。逐行输出,从上到下。

代码实现如下:

#include "stdio.h"
#include "math.h"
int main()
{
    for (float y = 1.3; y >= -0.8; y -= 0.1) //遍历y的值,从上到下,步长为0.05
    {
        for (float x = -1.1; x <= 1.1; x += 0.05) //遍历x的值,从左到右,步长为0.05
        {
            if (pow((5 * y / 4 - sqrt(abs(x))), 2) + x * x <= 1.0) //利用方程进行填充
            {
                printf("❤️");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
}

C语言实现几何图形绘制_第14张图片

C语言实现几何图形绘制_第15张图片

菱形

菱形就是两个等腰三角形组成


#include "stdio.h"
int main()
{
    for (size_t i = 0; i < 10; i++)
    {
        for (size_t j = 10; j > i; j--)
        {
            printf(" ");
        }
        for (size_t j = 0; j <= i; j++)
        {
            printf("?");
        }
        printf("\n");
    }
        for (size_t i = 0; i < 9; i++)
    {
        for (size_t j = 0; j <= i+1; j++)
        {
            printf(" ");
        }
        for (size_t j = 9; j > i; j--)
        {
            printf("?");
        }
        printf("\n");
    }
}
    

输出图形如下图:

C语言实现几何图形绘制_第16张图片

曲线


有趣的图形


你可能感兴趣的:(计算机笔记)