如何给vs2022导入图形库“graphics.h“

news/2025/2/11 7:52:38/

 

目录

问题:

下面是解决办法:

效果图

代码:


先看看我们用图形库做的一个三维旋转球体💡💡💡

三维球体

切记,切记,在做这一些列操作之前一定要把vs2022关掉。

问题:

找不到其中的文件

原因是:graphics.h头文件在我们的头文件中并不存在。需要官网下载。

下面是解决办法:

esayx的官方网址:

EasyX 2022 版 (2022-9-1 更新) - EasyX

找到vs2022需要下载的版本

找到vs2022的下载地址

 

 

crtl+j找到你下载的文件

 

 

这里的安装直接点击下一步

 

点击安装

 

如果你想看EasyX的在线文档,也可以安装这个

 

安装完成。

效果图

 

代码:

// 程序名称:三维旋转球
// 编译环境:Visual C++ 6.0 ~ 2022,EasyX_20210730
// 代码发布:2010-9-14
// 最后更新:2021-8-20
//#include <graphics.h>
#include <time.h>
#include <math.h>
#include <conio.h>#define MAXPOINT	5000
#define	PI			3.1415926536// 定义三维点
struct POINT3D
{double x;double y;double z;
};POINT3D p3d[MAXPOINT];		// 所有的三维点
double viewZ = 3;			// 视点 z 轴坐标// 初始化三维点
void InitPoint()
{// 产生随机种子srand((unsigned)time(NULL));// 产生球体表面的随机点(根据球体面积与其外切圆柱面积的关系)double rxy, a;for (int i = 0; i < MAXPOINT; i++){p3d[i].z = 2.0 * rand() / RAND_MAX - 1;	// 求随机 z 坐标rxy = sqrt(1 - p3d[i].z * p3d[i].z);	// 计算三维矢量在 xoy 平面的投影长度a = 2 * PI * rand() / RAND_MAX;			// 产生随机角度p3d[i].x = cos(a) * rxy;p3d[i].y = sin(a) * rxy;}
}// 使三维点按 x 轴旋转指定角度
void RotateX(POINT3D& p, double angle)
{double y = p.y;p.y = p.y * cos(angle) + p.z * sin(-angle);p.z = y * sin(angle) + p.z * cos(angle);
}// 使三维点按 y 轴旋转指定角度
void RotateY(POINT3D& p, double angle)
{double x = p.x;p.x = p.x * cos(angle) + p.z * sin(-angle);p.z = x * sin(angle) + p.z * cos(angle);
}// 使三维点按 z 轴旋转指定角度
void RotateZ(POINT3D& p, double angle)
{double x = p.x;p.x = p.x * cos(angle) + p.y * sin(-angle);p.y = x * sin(angle) + p.y * cos(angle);
}// 将三维点投影到二维屏幕上(单点透视)
POINT Projection(POINT3D p)
{POINT p2d;p2d.x = (int)(p.x * (viewZ / (viewZ - p.z)) * 200 + 0.5) + 320;p2d.y = (int)(p.y * (viewZ / (viewZ - p.z)) * 200 + 0.5) + 240;return p2d;
}// 精确延时函数(可以精确到 1ms,精度 ±1ms)
// by yangw80<yw80@qq.com>, 2011-5-4
void HpSleep(int ms)
{static clock_t oldclock = clock();		// 静态变量,记录上一次 tickoldclock += ms * CLOCKS_PER_SEC / 1000;	// 更新 tickif (clock() > oldclock)					// 如果已经超时,无需延时oldclock = clock();elsewhile (clock() < oldclock)			// 延时Sleep(1);						// 释放 CPU 控制权,降低 CPU 占用率//			Sleep(0);						// 更高精度、更高 CPU 占用率
}// 实现直接操作显示缓冲区的设备对象
class Device
{
private:DWORD* m_pbuffer;int m_width;int m_height;public:Device(int w, int h) : m_width(w), m_height(h){initgraph(w, h);BeginBatchDraw();m_pbuffer = GetImageBuffer();}~Device(){EndBatchDraw();closegraph();}// 画点void putpixel(int x, int y, COLORREF c){if (x >= 0 && x < m_width && y >= 0 && y < m_height)m_pbuffer[y * m_width + x] = BGR(c);}// 更新显示void flushdevice(){FlushBatchDraw();}
};// 主函数
int main()
{Device d(640, 480);InitPoint();int c;POINT p2d;while (!_kbhit()){cleardevice();			// 清除屏幕for (int i = 0; i < MAXPOINT; i++){// 使该点围绕三个坐标轴做旋转运动RotateX(p3d[i], PI / 800);RotateY(p3d[i], PI / 600);RotateZ(p3d[i], PI / 400);// 根据点的深度,产生相应灰度的颜色c = (int)(p3d[i].z * 100) + 155;// 投影该点到屏幕上p2d = Projection(p3d[i]);// 画点d.putpixel(p2d.x, p2d.y, RGB(c, c, c));}d.flushdevice();HpSleep(10);			// 延时 10 毫秒}return 0;
}


http://www.ppmy.cn/news/4748.html

相关文章

Go 微服务开发框架 DMicro 的设计思路

Go 微服务开发框架 DMicro 的设计思路 DMicro 源码地址: Gitee:dmicro: dmicro是一个高效、可扩展且简单易用的微服务框架。包含drpc,dserver等 背景 DMicro 诞生的背景&#xff0c;是因为我写了 10 来年的 PHP&#xff0c;想在公司内部推广 Go, 公司内部的组件及 rpc 协议都…

高企申报值不值

国家在各个方面给予支持。企业申报成功后不仅可以享受税收优惠、优先拨款等福利政策&#xff0c;同时还能提高企业知名度。 因此&#xff0c;很多企业“费尽心思”去申报高新技术企业。然而&#xff0c;高企申报并不是一件简单的事&#xff0c;2021年申请高企的企业共33163家&a…

多旅行商问题:世界杯优化算法(World Cup Optimization,WCO)求解多仓库多旅行商问题(提供Matlab代码)

一、世界杯优化算法 世界杯优化算法&#xff08;World Cup Optimization&#xff0c;WCO)由Navid Razmjooy等人于2016年提出&#xff0c;该算法模拟了国际足联世界杯比赛&#xff0c;思路新颖&#xff0c;收敛速度快&#xff0c;全局寻优能力强。 算法原理参考&#xff1a;智…

JVM简单介绍

JVMJVM内存区域划分JVM类加载机制JVM垃圾回收机制【哪些内存需要被JVM中垃圾回收机制回收】【JVM中垃圾回收机制的基本单位】【JVM中垃圾回收机制是如何判断对象是否是垃圾】【如何回收垃圾】JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java虚拟机。虚拟机是指通过软…

设计模式概述之建造者模式(五)

常说的设计模式是23种设计模式&#xff0c;分为3大类&#xff1a; 创建型模式5种&#xff1a;工厂方法、抽象工厂、单例、建造者、原型 结构型模式7种&#xff1a;适配器、代理、桥接、装饰者、外观、享元、组合 行为型模式11种&#xff1a;模板方法、解释器、策略、观察者、…

十年阿里测试工程师浅谈UnitTest单元测试框架

一、UnitTest单元测试框架提供了那些功能 1.提供用例组织和执行 如何定义一条“测试用例”? 如何灵活地控制这些“测试用例”的执行? 2.提供丰定的断言方法 当测试用例的执行结果与预期结果不一致时&#xff0c;判定测试用例失败。在自动化测试中&#xff0c;通过“断言”…

【数据结构】七大排序算法

文章目录排序算法&#xff08;1&#xff09; 直接插入排序&#xff08;2&#xff09; 希尔排序&#xff08;3&#xff09;选择排序&#xff08;4&#xff09;堆排序&#xff08;5&#xff09;冒泡排序&#xff08;6&#xff09;快速排序&#xff08;1&#xff09;hoare法&#…

Java项目:SSM网上药品销售商城网站系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本系统分为前后台&#xff0c;分为管理员与普通用户两种角色&#xff0c;前台由普通用户登录&#xff0c;后台由管理员登录&#xff1b; 管理员…