c语言绘制正弦函数_控制台窗口主机应用程序错误

c语言绘制正弦函数_控制台窗口主机应用程序错误出于本科教学的目的,需要使用C语言在控制台应用程序中动态绘制曲线,在此查阅了一些资料,制作了一个绘制动态正弦曲线的Demo。_gdi+获取曲线上的坐标

        出于本科教学的目的,需要使用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;//控制台绘图设备描述句柄 HDC
HPEN 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;
}

运行结果如下所示:

c语言绘制正弦函数_控制台窗口主机应用程序错误

今天的文章c语言绘制正弦函数_控制台窗口主机应用程序错误分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/59260.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注