【精选】太阳系八大行星运转轨迹程序,C语言,源代码分享

简介: 太阳系行星运行轨道图,C语言,源代码分享

【精选】太阳系八大行星运转轨迹程序,C语言,源代码分享

程序展示

1ec6dd9a95a94df7a35ab9f00a72ae14-00003.jpg


一、项目环境

1.Visual Studio 2022
2.安装easyx图形库,可以调用头文件

#include<easyx.h>


简单介绍一下easyx图形库

EasyX库是一个基于C语言的图形界面库,可以用于Windows操作系统下的图形界面应用程序开发。该库提供了一些易于使用的图形绘制函数和简单的事件处理功能,可以帮助开发者快速地创建各种图形应用程序,如游戏、图形编辑器等。
EasyX库提供了丰富的绘图功能,如直线、矩形、圆形、椭圆、多边形等基本形状的绘制,同时还支持图片、文字、音频等多种媒体资源的加载和处理。此外,EasyX库还支持鼠标、键盘等多种事件的处理,可以让用户与应用程序进行交互。
EasyX库的另一个特点是易于学习和使用。它提供了简单的API,使得初学者也可以轻松地入门,并且具有丰富的在线文档和示例程序,帮助开发者快速地学习和理解如何使用这个库。除此之外,EasyX库还可以和Visual Studio等常见的集成开发环境进行配合使用,使得开发工作更加高效。
总之,EasyX库是一款简单易用、功能强大的图形界面库,适用于初学者和有一定编程基础的开发者,可以用于快速开发各种图形应用程序。


Easyx图形库

点击跳转到easyx图形库下载官网


二、运行效果展示

请添加图片描述


三、项目介绍

是一款模拟太阳系八大行星运转轨迹程序,无聊中。。却有着一丝丝的治愈


四、项目源代码

#include<stdio.h>
#include<easyx.h>
#include<math.h>
int i,j=0,sudu;
int x, y,p,q=1,f=0;
void beijingtupian();
void SunandTrack()//太阳与八大行星运行轨迹
{
    beijingtupian();
    //绘制太阳
    setfillcolor(RGB(255, 0, 0));//太阳的颜色是红色
    solidcircle(0, 0, 75);//太阳坐标
    //绘制行星运转轨迹
    setlinecolor(BLACK);
    setlinestyle(PS_DASH, 1);
    for (i = 0; i < 8; i++)
    {
        ellipse(-150 - j, 100 + j, 150 + j, -100 - j);//八大行星运行轨迹
        j = j + 50;
    }
    j = 0;
}
void panduan(long long p, long long &f, long long &q, long long y, long long daxiao, COLORREF RGB,int b ,int sudu)
{

    if (p < 0)
    {
        p = -p;
        f = 1;
    }
    x= sqrt(p);
    if (f == 1)
    {
        x = -x;
        f = 0;
    }
    if (q == -1)
    {
        x = -x;
    }
    setfillcolor(RGB);
    solidcircle(x, y, daxiao);
    Sleep(sudu);
    if (y == b)
    {
        q = -1;
    }
    if (y == -b)
    {
        q = 1;
    }
}
//实现行星绕轨迹运动
void Planetarymotion()//绘制水星
{
    long long y1 = -100, x1, p1, f1 = 0, q1 = 5, b1 = 100, a1 = 150;//水星
    long long y2 = -150, x2, p2, f2 = 0, q2 = 4, b2 = 150, a2 = 200;//金星
    long long y3 = -200, x3, p3, f3 = 0, q3 = 2, b3 = 200, a3 = 250;//地球
    long long y4 = -250, x4, p4, f4 = 0, q4 = 2, b4 = 250, a4 = 300;//火星
    long long y5 = -300, x5, p5, f5 = 0, q5 = 2, b5 = 300, a5 = 350;//木星
    long long y6 = -350, x6, p6, f6 = 0, q6 = 2, b6 = 350, a6 = 400;//土星
    long long y7 = -400, x7, p7, f7 = 0, q7 = 1, b7 = 400, a7 = 450;//天王星
    long long y8 = -450, x8, p8, f8 = 0, q8 = 3, b8 = 450, a8 = 500;//海王星
    BeginBatchDraw();
    while (1)//行星运动嘛,肯定是要死循环的
    {
        cleardevice();
        //如何动起来,改变以下y值即可
        y1 = y1 + q1;
        y2 = y2 + q2;
        y3 = y3 + q3;
        y4 = y4 + q4;
        y5 = y5 + q5;
        y6 = y6 + q6;
        y7 = y7 + q7;
        y8 = y8 + q8;
        p1 = a1 * a1 - (a1 * a1 * y1 * y1) / (b1 * b1);
        p2 = a2 * a2 - (a2 * a2 * y2 * y2) / (b2 * b2);
        p3 = a3 * a3 - (a3 * a3 * y3 * y3) / (b3 * b3);
        p4 = a4 * a4 - (a4 * a4 * y4 * y4) / (b4 * b4);
        p5 = a5 * a5 - (a5 * a5 * y5 * y5) / (b5 * b5);
        p6 = a6 * a6 - (a6 * a6 * y6 * y6) / (b6 * b6);
        p7 = a7 * a7 - (a7 * a7 * y7 * y7) / (b7 * b7);
        p8 = a8 * a8 - (a8 * a8 * y8 * y8) / (b8 * b8);
        SunandTrack();
        panduan(p1, f1, q1, y1, 7, BLACK, b1,1);
        panduan(p2, f2, q2, y2,12, RGB(166, 118, 72),b2,1);
        panduan(p3, f3, q3, y3, 14, RGB(34, 90, 242), b3,1);
        panduan(p4, f4, q4, y4, 7, RGB(225, 168, 45), b4,1);
        panduan(p5, f5, q5, y5, 27, RGB(189, 172, 161), b5,1);
        panduan(p6, f6, q6, y6, 25, RGB(240, 235, 229), b6,1);
        panduan(p7, f7, q7, y7, 17, RGB(117, 232, 255), b7,1);
        panduan(p8, f8, q8, y8, 17, RGB(54, 41, 255), b8,50);
        FlushBatchDraw();
    }
    EndBatchDraw();
}
//绘制背景图片
void beijingtupian()
{
    IMAGE beijing;
    //loadimage(&beijing, "2.jpg",1100,900);有图片的可以用这行代码
    setbkcolor(RGB(255,244,187));
    setaspectratio(1, 1);//翻转Y坐标轴
    putimage(-550, -450, &beijing);
}
int main()
{
    system("pause");
    initgraph(1100, 900);//画布大小
    //绘制背景图
    setorigin(550, 450);//移动逻辑坐标点
    setaspectratio(1, -1);//翻转Y坐标轴
    Planetarymotion();//绘制水星
    getchar();
    closegraph();
    return 0;
}


结尾

小白在学习了,大家一起加油O(∩_∩)O,冲冲冲!!!
相关文章
|
2月前
|
存储 自然语言处理 编译器
【C语言】编译与链接:深入理解程序构建过程
【C语言】编译与链接:深入理解程序构建过程
|
4月前
|
存储 算法 C语言
"揭秘C语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
115 1
|
4月前
|
NoSQL 编译器 程序员
【C语言】揭秘GCC:从平凡到卓越的编译艺术,一场代码与效率的激情碰撞,探索那些不为人知的秘密武器,让你的程序瞬间提速百倍!
【8月更文挑战第20天】GCC,GNU Compiler Collection,是GNU项目中的开源编译器集合,支持C、C++等多种语言。作为C语言程序员的重要工具,GCC具备跨平台性、高度可配置性及丰富的优化选项等特点。通过简单示例,如编译“Hello, GCC!”程序 (`gcc -o hello hello.c`),展示了GCC的基础用法及不同优化级别(`-O0`, `-O1`, `-O3`)对性能的影响。GCC还支持生成调试信息(`-g`),便于使用GDB等工具进行调试。尽管有如Microsoft Visual C++、Clang等竞品,GCC仍因其灵活性和强大的功能被广泛采用。
151 1
|
4月前
|
编译器 C语言 计算机视觉
C语言实现的图像处理程序
C语言实现的图像处理程序
207 0
|
26天前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
52 5
|
26天前
|
C语言
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
57 4
|
25天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
56 1
|
26天前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
37 2
|
26天前
|
程序员 C语言
C语言中的指针既强大又具挑战性,它像一把钥匙,开启程序世界的隐秘之门
C语言中的指针既强大又具挑战性,它像一把钥匙,开启程序世界的隐秘之门。本文深入探讨了指针的基本概念、声明方式、动态内存分配、函数参数传递、指针运算及与数组和函数的关系,强调了正确使用指针的重要性,并鼓励读者通过实践掌握这一关键技能。
36 1
|
2月前
|
存储 文件存储 C语言
深入C语言:文件操作实现局外影响程序
深入C语言:文件操作实现局外影响程序