openGL简单画图(C++/GLUT)画同心圆、折线

void init(void) { //背景设定为白色 glClearColor(1.0, 1.0, 1.0, 0.0); //正投影 glMatrixMode(GL_PROJECTION); gluOrtho2D(-200.0, 200.0, -150.0, 150.0);}void myDisplay(void){ //显示窗口 glClear(GL_COLOR...
摘要由CSDN通过智能技术生成

计算机图形学快结课了,这里整理一下我学习的时候的代码。

 

void init(void) {
	//背景设定为白色
	glClearColor(1.0, 1.0, 1.0, 0.0);

	//正投影
	glMatrixMode(GL_PROJECTION);
	gluOrtho2D(-200.0, 200.0, -150.0, 150.0);
}

void myDisplay(void)

{
	
	//显示窗口
	glClear(GL_COLOR_BUFFER_BIT);

	//设置颜色
	glColor3f(1.0, 0.5, 0.4);

	//设置线的粗细
	glLineWidth(4.0f);

#pragma region 折线
	//画折线
	glBegin(GL_LINE_STRIP);
	glVertex2i(-20, -20);
    glVertex2i(-82, -82);
	glVertex2i(-92, -75);
	glVertex2i(-30, -15);
	glEnd();
#pragma endregion
 
#pragma region 同心圆
	//画同心圆
	float pi = 3.1415926536;
	int i = 0;
	int n = 1000;
	glBegin(GL_POLYGON);//圆1
	for (i = 0; i < n; i++)
	{
		glVertex2f(50 * cos(2 * pi * i / n), 50 * sin(2 * pi * i / n));
	}
	glEnd();

	glBegin(GL_POLYGON);//圆2
	glColor3f(1.0, 1.0, 1.0);
	for (i = 0; i < n; i++)
	{
		glVertex2f(40 * cos(2 * pi * i / n), 40 * sin(2 * pi * i / n));
	}
	glEnd();

	glBegin(GL_POLYGON);//圆3
	glColor3f(1.0, 
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要安装OpenGL的库和相关工具。然后,可以按照以下步骤编写一个简单C++程序来使用OpenGL显示汉字: 1. 导入必要的头文件和库文件: ```c++ #include <GL/glut.h> #include <GL/gl.h> #include <GL/glu.h> #include <Windows.h> //用于字体设置 ``` 2. 设置窗口大小和显示模式: ```c++ void init(void) { glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0, 400.0, 0.0, 300.0); } ``` 3. 编写绘制汉字的函数: ```c++ void drawString(const char* str) { //设置字体 LOGFONT font; memset(&font, 0, sizeof(LOGFONT)); font.lfHeight = 24; //字体高度 font.lfCharSet = GB2312_CHARSET; //字符集 HFONT hFont = CreateFontIndirect(&font); HFONT hOldFont = (HFONT)SelectObject(GetDC(NULL), hFont); //绘制汉字 glPushMatrix(); glRasterPos2f(100.0, 150.0); for (const char* p = str; *p; p++) { WCHAR wc = (WCHAR)*p; wglUseFontBitmapsW(GetDC(NULL), wc, 1, 1, 1); glCallList(wc); } glPopMatrix(); //恢复字体 SelectObject(GetDC(NULL), hOldFont); DeleteObject(hFont); } ``` 4. 编写绘制函数: ```c++ void display(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); drawString("你好,世界!"); //绘制汉字 glFlush(); } ``` 5. 编写主函数: ```c++ int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(400, 300); glutInitWindowPosition(100, 100); glutCreateWindow("Hello, world!"); init(); glutDisplayFunc(display); glutMainLoop(); return 0; } ``` 以上就是使用OpenGLC++中绘制汉字的基本步骤。需要注意的是,这只是一个简单的示例,实际应用中可能需要更复杂的绘制和字体设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值