C++用bezier绘制美羊羊的代码
时间: 2024-06-09 14:08:45 浏览: 10
以下是C++用bezier绘制美羊羊的代码,需要使用OpenGL库:
```c++
#include <GL/glut.h>
void drawBezierCurve()
{
glColor3f(1.0, 1.0, 1.0); // 设置绘制颜色为白色
glBegin(GL_LINE_STRIP); // 开始绘制线段
glVertex2f(0.0, 0.0); // 绘制起点
glVertex2f(0.25, 0.25); // 第一个控制点
glVertex2f(0.5, 0.5); // 第二个控制点
glVertex2f(0.75, 0.25); // 第三个控制点
glVertex2f(1.0, 0.0); // 绘制终点
glEnd(); // 结束绘制线段
}
void drawSheep()
{
// 绘制头部
glPushMatrix(); // 压入矩阵堆栈
glTranslatef(-0.5, 0.8, 0.0); // 平移头部位置
glScalef(0.5, 0.5, 1.0); // 缩小头部大小
drawBezierCurve(); // 绘制头部
glPopMatrix(); // 弹出矩阵堆栈
// 绘制身体
glPushMatrix(); // 压入矩阵堆栈
glScalef(0.7, 0.7, 1.0); // 缩小身体大小
drawBezierCurve(); // 绘制身体
glPopMatrix(); // 弹出矩阵堆栈
// 绘制腿
glPushMatrix(); // 压入矩阵堆栈
glTranslatef(-0.3, -0.5, 0.0); // 平移左前腿位置
glScalef(0.2, 0.2, 1.0); // 缩小左前腿大小
drawBezierCurve(); // 绘制左前腿
glPopMatrix(); // 弹出矩阵堆栈
glPushMatrix(); // 压入矩阵堆栈
glTranslatef(0.3, -0.5, 0.0); // 平移右前腿位置
glScalef(0.2, 0.2, 1.0); // 缩小右前腿大小
drawBezierCurve(); // 绘制右前腿
glPopMatrix(); // 弹出矩阵堆栈
glPushMatrix(); // 压入矩阵堆栈
glTranslatef(-0.3, -0.8, 0.0); // 平移左后腿位置
glScalef(0.2, 0.2, 1.0); // 缩小左后腿大小
drawBezierCurve(); // 绘制左后腿
glPopMatrix(); // 弹出矩阵堆栈
glPushMatrix(); // 压入矩阵堆栈
glTranslatef(0.3, -0.8, 0.0); // 平移右后腿位置
glScalef(0.2, 0.2, 1.0); // 缩小右后腿大小
drawBezierCurve(); // 绘制右后腿
glPopMatrix(); // 弹出矩阵堆栈
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT); // 清空颜色缓存区
drawSheep(); // 绘制美羊羊
glFlush(); // 强制刷新缓存区
}
int main(int argc, char** argv)
{
glutInit(&argc, argv); // 初始化GLUT库
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // 设置窗口显示模式
glutInitWindowSize(400, 400); // 设置窗口大小
glutCreateWindow("Bezier Curve - Meiyangyang"); // 创建窗口并设置窗口标题
glMatrixMode(GL_PROJECTION); // 设置矩阵模式为投影矩阵
glLoadIdentity(); // 重置矩阵
gluOrtho2D(-1.0, 1.0, -1.0, 1.0); // 设置绘图区域
glutDisplayFunc(display); // 注册绘制回调函数
glutMainLoop(); // 进入主循环
return 0;
}
```
需要注意的是,以上代码只是绘制了美羊羊的轮廓,如果要绘制更加真实的美羊羊图案,需要对代码进行修改。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)