【发布时间】:2021-01-27 22:26:17
【问题描述】:
我正在尝试使用下面的样式绘制箭头,但该箭头也应根据条件旋转(需要通过每个条件的度数)。我可以绘制矩形和三角形,但不能将三角形绘制为箭头。另外,如何将旋转度数包含在代码中?有没有更简单的方法来绘制箭头并旋转它?
int triangleRect=4, triangleTri=3, lineWidth=3;
double twicePi = 2.0f * M_PI, angle_offsetR =1.5* M_PI/2, radius = 0.05,
xR=m_start.x(), y=m_start.y(), xT=m_start.x()+ m_rect_width;
glColor3f(0,1,0);
glLineWidth(lineWidth);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_MULTISAMPLE);
glEnable(GL_POINT_SMOOTH);
glEnable(GL_LINE_SMOOTH);
glBegin(GL_TRIANGLE_FAN);
//RECTANGLE
for(int i = 0; i <= triangleRect; i++) {
glVertex2f((xR + (radius * cos(i * twicePi / triangleRect + angle_offsetR)))* m_parent_width_function(),
(y + (radius * sin(i * twicePi / triangleRect + angle_offsetR)))* m_parent_height_function());
}
// TRIANGLE
for(int i = 0; i <= triangleTri; i++) {
glVertex2f((xT + (radius * cos(i * twicePi / triangleTri + angle_offsetR)))* m_parent_width_function(),
(y + (radius * sin(i * twicePi / triangleTri + angle_offsetR)))* m_parent_height_function());
}
glEnd();
【问题讨论】:
-
glRotatef()由于某种原因无法正常工作? -
我已经包含 glRotatef(45.0f, 0.0f, 1.0f, 1.0f); glTranslatef(0.0f, 0.0f, -100.0f);在 glBegin 之后,但我看不到任何变化。我正在尝试上下旋转箭头。我不确定我做错了什么。
标签: c++ qt opengl opengl-compat