时间:2021-05-20
出于本科教学的目的,需要使用C语言在Visual Studio下控制台应用程序中动态绘制曲线,在此查阅了一些资料,制作了一个绘制动态正弦曲线的Demo,大家可根据这个例子查阅GDI、GDI+手册,根据需求丰富自己的绘图程序。
#include <windows.h>//引入wingdi.h#include <stdio.h>#include <math.h>#include <time.h>#include <conio.h> #define PI 3.1416 #define ORIGINX 0 //曲线起点X坐标#define ORIGINY 200 //曲线起点Y坐标#define LENGTHX 800 //X坐标轴长度#define LENGTHY 300 //Y坐标轴长度#define XDATALEN 300//X坐标数据量 HDC hdc = 0;//控制台绘图设备描述句柄 HDCHPEN hPen, hPen2;//画笔变量HPEN hPenOld;TCHAR title[256];//控制台程序标题int times = 0;//绘制次数变量double datay[XDATALEN];//曲线纵坐标数组 //绘制清屏矩形void ClearWind(HDC hdc){ HPEN hPen; HBRUSH hBrush; hBrush = CreateSolidBrush(RGB(0, 0, 0)); hPen = CreatePen(PS_SOLID, 0, RGB(0, 0, 0)); SelectObject(hdc, hBrush); SelectObject(hdc, hPen); //绘制黑色矩形,范围可根据需要自行更改 Rectangle(hdc, ORIGINX, 0, ORIGINX + LENGTHX + 1, ORIGINY + LENGTHY + 1);} int main(){ //获取控制台标题 GetConsoleTitle(title, 256); //先通过FindWindow函数借助标题获取窗口句柄HWND,之后再利用GetDC函数借助HWND获取HDC hdc = GetDC(FindWindow(0, title)); hPen = CreatePen(PS_SOLID, 3, RGB(255, 0, 0));//设置曲线画笔,红色 hPen2 = CreatePen(PS_SOLID, 3, RGB(0, 0, 255));//设置X轴画笔,蓝色 hPenOld = (HPEN)SelectObject(hdc, hPen); while (1) { ClearWind(hdc);//清屏 hPenOld = (HPEN)SelectObject(hdc, hPen);//选择画笔 MoveToEx(hdc, ORIGINX, ORIGINY, NULL);//移动到起点 for (int i = 0; i < XDATALEN; i++) { datay[i] = sin(0.1*i + times);//生成曲线纵坐标数组 } for (int i = 0; i < XDATALEN; i++) { //绘制线段,连接前一个点与下一个点,第二个参数为目标点x坐标,第三个参数为y坐标 LineTo(hdc, LENGTHX * i / XDATALEN + ORIGINX, 0.5 * LENGTHY * datay[i] + ORIGINY); } //创建绘制x轴的pen并将其选入设备上下文 hPenOld = (HPEN)SelectObject(hdc, hPen2);//选择画笔 MoveToEx(hdc, ORIGINX, ORIGINY, NULL);//移动到起点 LineTo(hdc, ORIGINX + LENGTHX, ORIGINY);//绘制X轴直线 times++; Sleep(100);//延时100ms if (kbhit())//检查是否有按键按下 { if (_getch() == 0x1b)//若按下ESC键跳出循环 { break; } } } DeleteObject(hPen);//删除画笔 DeleteObject(hPen2);//删除画笔 return 0;}运行结果如下所示:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
CAXA电子图板如何画正弦曲线呢?此款软件是一个开放的二维CAD平台,可以绘制出各种不同机械工程的设计图纸,正弦曲线作为经常使用的函数公式,可以直接在用公式曲线
excel如何根据表格里的数据绘制曲线图?下面小编带来excel曲线图绘制方法,有兴趣的朋友一起来看看吧。excel曲线图绘制方法:绘制正弦曲线:由于我们要生成
学习C#编程最常见的示例程序是在控制台应用程序中输出HelloWorld!usingSystem;namespaceDemoMainArgs{classPro
本文实例为大家分享了C语言控制台绘制曲线的具体代码,供大家参考,具体内容如下首先我们应该要知道曲线的方程,这里以直角坐标为例设我们曲线方程为y=f(x)然后我们
1.txt12345678910123456789102.txt123452345645678程序代码://C++读取文本到数组.cpp:定义控制台应用程序的入