OpenGL实现画笔

102 篇文章 0 订阅
81 篇文章 2 订阅

1,画笔类型:

   CUBIC_BSPLINE:三次样条曲线,不过控制顶点

   FOUR_POINT:过控制顶点。

2,支持纹理贴图

3,效果图:

4,代码下载地址:

http://www.dgp.toronto.edu/~hertzman/stroke/

stroke.cpp中有一个错误:

 

polyfill实现了多边形填充算法。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是使用OpenGL画圆的C++代码示例: ```c++ #include <GL/glut.h> #include <cmath> // 定义圆心坐标和半径 GLfloat x = 0.0f; GLfloat y = 0.0f; GLfloat radius = 0.5f; void drawCircle() { // 设置画笔颜色 glColor3f(1.0f, 1.0f, 1.0f); // 绘制圆形 glBegin(GL_TRIANGLE_FAN); glVertex2f(x, y); // 圆心点 for (int i = 0; i <= 360; i++) { GLfloat angle = i * 3.1415926f / 180.0f; GLfloat dx = radius * cosf(angle); GLfloat dy = radius * sinf(angle); glVertex2f(x + dx, y + dy); } glEnd(); } void display() { // 清除颜色缓冲区 glClear(GL_COLOR_BUFFER_BIT); // 绘制圆形 drawCircle(); // 刷新显示缓冲区 glutSwapBuffers(); } int main(int argc, char **argv) { // 初始化GLUT库 glutInit(&argc, argv); // 创建窗口 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); glutInitWindowSize(400, 400); glutCreateWindow("Circle"); // 设置窗口背景颜色 glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // 设置投影矩阵 glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); // 注册回调函数 glutDisplayFunc(display); // 进入主循环 glutMainLoop(); return 0; } ``` 该代码使用OpenGL的`glBegin()`和`glEnd()`函数绘制一个由多个三角形组成的圆形。其中,圆形的每个顶点坐标是通过圆心坐标、半径和角度计算得到的。圆形的绘制通过`drawCircle()`函数实现。在`main()`函数中,使用`glutInit()`初始化GLUT库,创建窗口并设置窗口背景颜色,设置投影矩阵,注册回调函数,并进入主循环。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值