OpenGL绘制圆圈 /椭圆(填充)无GLBEGIN
OpenGL drawing Circle / Ellipse (filled in) without glBegin?
我正在尝试使用openGL绘制椭圆形并将纹理映射到它。我不想在不弃用时使用glbegin(...)或glvertex4f。我有椭圆形式显示纹理,但仅当我使用gl_line_loop时。这不允许我用纹理填充椭圆形。我尝试使用gl_triangle_strip,希望这将填充椭圆,但这似乎没有任何东西。
void Ellipse::makeEllipse(float radiusX, float radiusY)
{
for(int i=0; i < 360; i++)
{
float rad = i*DEG2RAD;
ellipse_vertices[i] = vec4(cos(rad)*radiusX,
sin(rad)*radiusY,0,1);
}
}
.
.
.
glDrawArrays (GL_TRIANGLE_STRIP, 0, numEllipsisVertices);
我试图找到解决方案,但是只有使用Glbegin和Glvertex进行了弃用的示例。
gl_triangle_strip可能不是要用于椭圆的绘图模式。但是gl_triangle_fan应该很好地工作。我建议您用中心顶点开始椭圆形,以减轻几何形状:
void Ellipse::makeEllipse(float radiusX, float radiusY)
{
ellipse_vertices[0] = vec4(0,0,0,1);
for(int i=1; i < numEllipseVertices; i++)
{
float rad = i*DEG2RAD;
ellipse_vertices[i] = vec4(cos(rad)*radiusX,
sin(rad)*radiusY,0,1);
}
}
.
.
.
glDrawArrays (GL_TRIANGLE_STRIP, 0, numEllipseVertices);
小语言提示:"省略号"≠"椭圆"
相关文章:
- 在c++中用vector填充一个简单的动态数组
- 如何使用用户输入在C++中正确填充2D数组
- 如何找到大小'x'数组是否完全填充,在C++?
- Cuda C++:设备上的Malloc类,并用来自主机的数据填充它
- 通过for循环使用用户输入填充列表
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- 如何正确填充在堆上分配的二维数组?
- 将数字转换为填充字符串
- 有没有办法在一行中填充矢量图
- 用C++中的数字和条件填充向量
- 用真值填充矢量
- 使用结构成员指针在C++中填充结构
- opengl glBegin(GL_LINES) 和 glBegin(GL_POINT) 在 2D 中不可视化点矢量
- 流填充字符的默认定位
- 使用不同算法的 PKCS1v15 填充进行加密 ++ 签名
- C++:使用缓冲区中的数据填充结构
- 如何将零填充的多维数组传递给 C++ 中的函数?
- Cryptopp:获取密码输入的填充字符串
- 填充上编译器生成的复制构造函数之间的不一致
- OpenGL绘制圆圈 /椭圆(填充)无GLBEGIN